@fluentui/react-charting 5.16.1 → 5.16.2
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 +43 -1
- package/CHANGELOG.md +13 -2
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/docs/colors.md +146 -0
- package/lib/components/AreaChart/AreaChart.base.d.ts +1 -0
- package/lib/components/AreaChart/AreaChart.base.js +26 -12
- package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib/components/Legends/shape.js.map +1 -1
- package/lib/components/LineChart/LineChart.base.js +22 -5
- package/lib/components/LineChart/LineChart.base.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/types/IDataPoint.d.ts +2 -2
- package/lib/types/IDataPoint.js.map +1 -1
- package/lib/utilities/colors.d.ts +51 -0
- package/lib/utilities/colors.js +132 -0
- package/lib/utilities/colors.js.map +1 -0
- package/lib/utilities/index.d.ts +1 -0
- package/lib/utilities/index.js +1 -0
- package/lib/utilities/index.js.map +1 -1
- package/lib/utilities/utilities.js.map +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/lib-amd/components/AreaChart/AreaChart.base.d.ts +1 -0
- package/lib-amd/components/AreaChart/AreaChart.base.js +25 -11
- package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-amd/components/Legends/shape.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.base.js +21 -4
- package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib-amd/index.d.ts +1 -0
- package/lib-amd/index.js +2 -1
- package/lib-amd/index.js.map +1 -1
- package/lib-amd/types/IDataPoint.d.ts +2 -2
- package/lib-amd/types/IDataPoint.js.map +1 -1
- package/lib-amd/utilities/colors.d.ts +51 -0
- package/lib-amd/utilities/colors.js +139 -0
- package/lib-amd/utilities/colors.js.map +1 -0
- package/lib-amd/utilities/index.d.ts +1 -0
- package/lib-amd/utilities/index.js +2 -1
- package/lib-amd/utilities/index.js.map +1 -1
- package/lib-amd/utilities/utilities.js.map +1 -1
- package/lib-amd/version.js +1 -1
- package/lib-amd/version.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.d.ts +1 -0
- package/lib-commonjs/components/AreaChart/AreaChart.base.js +25 -11
- package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-commonjs/components/Legends/shape.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.base.js +21 -4
- package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib-commonjs/index.d.ts +1 -0
- package/lib-commonjs/index.js +1 -0
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/types/IDataPoint.d.ts +2 -2
- package/lib-commonjs/types/IDataPoint.js.map +1 -1
- package/lib-commonjs/utilities/colors.d.ts +51 -0
- package/lib-commonjs/utilities/colors.js +137 -0
- package/lib-commonjs/utilities/colors.js.map +1 -0
- package/lib-commonjs/utilities/index.d.ts +1 -0
- package/lib-commonjs/utilities/index.js +1 -0
- package/lib-commonjs/utilities/index.js.map +1 -1
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/lib-commonjs/version.js +1 -1
- package/lib-commonjs/version.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.base.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, bisector } from 'd3-array';\nimport { clientPoint } from 'd3-selection';\nimport { select as d3Select } from 'd3-selection';\nimport { area as d3Area, stack as d3Stack, curveMonotoneX as d3CurveBasis, line as d3Line } from 'd3-shape';\nimport { IPalette } from '@fluentui/react/lib/Styling';\nimport { classNamesFunction, find, getId, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n IChartProps,\n ICustomizedCalloutData,\n IAreaChartProps,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n IChildProps,\n IMargins,\n IAreaChartStyleProps,\n IAreaChartStyles,\n} from '../../index';\nimport { warnDeprecations } from '@fluentui/react/lib/Utilities';\nimport {\n calloutData,\n getXAxisType,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n} from '../../utilities/index';\nimport { ILegend, Legends } from '../Legends/index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\n\nconst getClassNames = classNamesFunction<IAreaChartStyleProps, IAreaChartStyles>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst COMPONENT_NAME = 'AREA CHART';\n\nenum InterceptVisibility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IAreaChartAreaPoint {\n xVal: string | number;\n values: IAreaChartDataSetPoint;\n}\nexport interface IAreaChartDataSetPoint {\n [key: string]: number | string;\n}\nexport interface IDPointType {\n values: { 0: number; 1: number; data: {} };\n xVal: number | Date;\n}\n\nexport interface IAreaChartState extends IBasestate {\n lineXValue: number;\n displayOfLine: InterceptVisibility;\n isCircleClicked: boolean;\n dataPointCalloutProps?: ICustomizedCalloutData;\n stackCalloutProps?: ICustomizedCalloutData;\n nearestCircleToHighlight: number | string | Date | null;\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n isShowCalloutPending: boolean;\n}\n\nexport class AreaChartBase extends React.Component<IAreaChartProps, IAreaChartState> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any;\n private _createSet: (\n data: IChartProps,\n ) => {\n colors: string[];\n opacity: number[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n stackedInfo: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n calloutPoints: any;\n };\n private _colors: string[];\n private _opacity: number[];\n private _uniqueIdForGraph: string;\n private _verticalLineId: string;\n private _circleId: string;\n private _uniqueCallOutID: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _stackedData: any;\n private _chart: JSX.Element[];\n private margins: IMargins;\n private _rectId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisRectScale: any;\n // determines if the given area chart has multiple stacked bar charts\n private _isMultiStackChart: boolean;\n private _tooltipId: string;\n private _highlightedCircleId: string;\n\n public constructor(props: IAreaChartProps) {\n super(props);\n this._createSet = memoizeFunction((data: IChartProps) => this._createDataSet(data.lineChartData!));\n this.state = {\n selectedLegend: '',\n activeLegend: '',\n hoverXValue: '',\n isCalloutVisible: false,\n refSelected: null,\n YValueHover: [],\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n nearestCircleToHighlight: null,\n isShowCalloutPending: false,\n };\n warnDeprecations(COMPONENT_NAME, props, {\n showYAxisGridLines: 'Dont use this property. Lines are drawn by default',\n });\n this._uniqueIdForGraph = getId('areaChart_');\n this._verticalLineId = getId('verticalLine_');\n this._circleId = getId('circle');\n this._rectId = getId('rectangle');\n this._tooltipId = getId('AreaChartTooltipID');\n }\n\n public componentDidUpdate() {\n if (this.state.isShowCalloutPending) {\n this.setState({\n refSelected: `#${this._highlightedCircleId}`,\n isCalloutVisible: true,\n isShowCalloutPending: false,\n });\n }\n }\n\n public render(): JSX.Element {\n const { lineChartData, chartTitle } = this.props.data;\n const { colors, opacity, stackedInfo, calloutPoints } = this._createSet(this.props.data);\n this._calloutPoints = calloutPoints;\n const isXAxisDateType = getXAxisType(lineChartData!);\n this._colors = colors;\n this._opacity = opacity;\n this._stackedData = stackedInfo.stackedData;\n const legends: JSX.Element = this._getLegendData(this.props.theme!.palette, lineChartData!);\n\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n const calloutProps = {\n target: this.state.refSelected,\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n gapSpace: 15,\n isBeakVisible: false,\n setInitialFocus: true,\n onDismiss: this._closeCallout,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n return (\n <CartesianChart\n {...this.props}\n chartTitle={chartTitle}\n points={lineChartData!}\n chartType={ChartTypes.AreaChart}\n calloutProps={calloutProps}\n legendBars={legends}\n isCalloutForStack\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n tickParams={tickParams}\n maxOfYVal={stackedInfo.maxOfYVal}\n getGraphData={this._getGraphData}\n getmargins={this._getMargins}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisRectScale = props.xScale;\n const ticks = this._xAxisRectScale.ticks();\n const width1 = this._xAxisRectScale(ticks[ticks.length - 1]);\n const rectHeight = props.containerHeight! - this.margins.top!;\n return (\n <>\n <g>\n <rect\n id={this._rectId}\n width={width1}\n height={rectHeight}\n fill={'transparent'}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n </g>\n <g>{this._chart}</g>\n </>\n );\n }}\n />\n );\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _onRectMouseMove = (mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisRectScale.invert(clientPoint(document.getElementById(this._rectId)!, mouseEvent)[0]);\n const i = bisect(lineChartData![0].data, xOffset);\n const d0 = lineChartData![0].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![0].data[i] as ILineChartDataPoint;\n let axisType: XAxisTypes | null = null;\n let pointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n if (d0 === undefined && d1 !== undefined) {\n pointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n pointToHighlight = d0.x;\n index = i - 1;\n } else {\n axisType = getTypeOfAxis(lineChartData![0].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 pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![0].data[index as number];\n const formattedDate = pointToHighlight instanceof Date ? pointToHighlight.toLocaleString() : pointToHighlight;\n const modifiedXVal = pointToHighlight instanceof Date ? pointToHighlight.getTime() : pointToHighlight;\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 nearestCircleToHighlight =\n axisType === XAxisTypes.DateAxis ? (pointToHighlight as Date).getTime() : pointToHighlight;\n const pointToHighlightUpdated = this.state.nearestCircleToHighlight !== nearestCircleToHighlight;\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated && !this.state.isShowCalloutPending) {\n this.setState({\n nearestCircleToHighlight: nearestCircleToHighlight,\n isCalloutVisible: false,\n isShowCalloutPending: true,\n lineXValue: this._xAxisRectScale(pointToHighlight),\n displayOfLine: InterceptVisibility.show,\n isCircleClicked: false,\n stackCalloutProps: found!,\n YValueHover: found.values,\n dataPointCalloutProps: found!,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n });\n } else {\n /*\n When above if condition is false but found=true, it means either\n\n 1). pointToHighlightUpdated is false.\n For this case we dont need to do anything.\n\n 2). isShowCalloutPending is true.\n For this case there will be no callout updation for the event.\n This condition has been added to prevent repeated callout flashing.\n Currently there is a fraction of second delay between hover event and subsequent callout refresh.\n In the meantime if another event is received, the callout continues to flash for the set of\n intermediate hover events.\n\n This does not cause any issue as the user interaction takes atleast a fraction of second and the final\n callout state is ultimately achieved.\n If a user performs very swift mouse maneuver, the intermediate events will be lost but the callout experience\n remains smooth.\n */\n }\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight: nearestCircleToHighlight,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n });\n }\n };\n /**\n * just cleaning up the state which we have set in the mouse move event\n */\n private _onRectMouseOut = () => {\n /**/\n };\n\n private _handleChartMouseLeave = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n nearestCircleToHighlight: null,\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n hoverXValue: undefined,\n YValueHover: [],\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getStackedData = (keys: string[], dataSet: any) => {\n const stackedValues = d3Stack().keys(keys)(dataSet);\n const maxOfYVal = d3Max(stackedValues[stackedValues.length - 1], dp => dp[1])!;\n const stackedData: Array<IAreaChartDataSetPoint[]> = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n stackedValues.forEach((layer: any) => {\n const currentStack: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n layer.forEach((d: any) => {\n currentStack.push({\n values: d,\n xVal: d.data.xVal,\n });\n });\n stackedData.push(currentStack);\n });\n this._isMultiStackChart = stackedData && stackedData.length > 1 ? true : false;\n return {\n stackedData,\n maxOfYVal,\n };\n };\n\n private _createDataSet = (points: ILineChartPoints[]) => {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n let tempArr = allChartPoints;\n while (tempArr.length) {\n const valToCheck = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n const filteredChartPoints: ILineChartDataPoint[] = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) === valToCheck,\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n filteredChartPoints.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n // removing compared objects from array\n const val = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n tempArr = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) !== val,\n );\n }\n\n // get keys from dataset, used to create stacked data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Stacked Info used to draw graph\n const stackedInfo = this._getStackedData(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n stackedInfo,\n calloutPoints,\n };\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xAxis: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxis: any,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n this._chart = this._drawGraph(containerHeight, xAxis, yAxis, xElement!);\n };\n\n private _onLegendClick(legend: string): void {\n if (this.state.selectedLegend === legend) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legend,\n });\n }\n }\n\n private _onLegendHover(legend: string): void {\n this.setState({\n activeLegend: legend,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n\n private _getLegendData = (palette: IPalette, points: ILineChartPoints[]): JSX.Element => {\n const data = points;\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n\n data.forEach((singleChartData: ILineChartPoints) => {\n const color: string = singleChartData.color\n ? singleChartData.color\n : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === singleChartData.legend && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: singleChartData.legend,\n color: color,\n action: () => {\n this._onLegendClick(singleChartData.legend);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(singleChartData.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n {...this.props.legendProps}\n />\n );\n };\n\n private _onDataPointClick = (func: (() => void) | undefined) => {\n if (func) {\n func();\n }\n this.setState({ isCircleClicked: true });\n };\n\n private _getOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 0.7;\n } else {\n const opacity = this._legendHighlighted(legend) || this._noLegendHighlighted() ? 0.7 : 0.1;\n return opacity;\n }\n };\n\n private _getLineOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 1;\n } else {\n let opacity = 0.3;\n if (this.state.isCalloutVisible) {\n opacity = 1;\n }\n if (!this._noLegendHighlighted()) {\n opacity = this._legendHighlighted(legend) ? 0 : 0.1;\n }\n return opacity;\n }\n };\n\n private _updateCircleFillColor = (xDataPoint: number | Date, lineColor: string, circleId: string): string => {\n let fillColor = lineColor;\n if (this.state.nearestCircleToHighlight === xDataPoint) {\n this._highlightedCircleId = circleId;\n if (!this.state.isCircleClicked) {\n fillColor = this.props.theme!.palette.white;\n }\n }\n\n return fillColor;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _drawGraph = (containerHeight: number, xScale: any, yScale: any, xElement: SVGElement): JSX.Element[] => {\n const points = this.props.data.lineChartData!;\n const { pointOptions, pointLineOptions } = this.props.data;\n const area = d3Area()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y0((d: any) => yScale(d.values[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y1((d: any) => yScale(d.values[1]))\n .curve(d3CurveBasis);\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d.values[1]))\n .curve(d3CurveBasis);\n\n const graph: JSX.Element[] = [];\n let lineColor: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._stackedData.forEach((singleStackedData: Array<any>, index: number) => {\n graph.push(\n <React.Fragment key={`${index}-graph-${this._uniqueIdForGraph}`}>\n <path\n id={`${index}-line-${this._uniqueIdForGraph}`}\n d={line(singleStackedData)!}\n fill={'transparent'}\n strokeWidth={3}\n stroke={this._colors[index]}\n opacity={this._getLineOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...points[index]!.lineOptions}\n />\n {singleStackedData.length === 1 ? (\n <circle\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n cx={xScale(singleStackedData[0].xVal)}\n cy={yScale(singleStackedData[0].values[1])}\n r={6}\n stroke={this._colors[index]}\n strokeWidth={3}\n fill={this._colors[index]}\n opacity={this._opacity[index]}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n ) : (\n <path\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n fill={this._colors[index]}\n opacity={this._opacity[index]}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n )}\n </React.Fragment>,\n );\n });\n\n const circleRadius = pointOptions && pointOptions.r ? Number(pointOptions.r) : 8;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._stackedData.forEach((singleStackedData: Array<any>, index: number) => {\n if (points.length === index) {\n return;\n }\n graph.push(\n <g key={`${index}-dots-${this._uniqueIdForGraph}`} d={area(singleStackedData)!} clipPath=\"url(#clip)\">\n {singleStackedData.map((singlePoint: IDPointType, pointIndex: number) => {\n const circleId = `${this._circleId}_${index * this._stackedData[0].length + pointIndex}`;\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n lineColor = points[index]!.color;\n return (\n <circle\n key={circleId}\n id={circleId}\n data-is-focusable={true}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n visibility={this.state.nearestCircleToHighlight ? 'visibility' : 'hidden'}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n onClick={this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!)}\n {...pointOptions}\n r={this._getCircleRadius(xDataPoint, circleRadius)}\n />\n );\n })}\n </g>,\n );\n });\n graph.push(\n <line\n id={this._verticalLineId}\n key={this._verticalLineId}\n x1={this.state.lineXValue}\n y1={0}\n x2={this.state.lineXValue}\n y2={containerHeight}\n strokeWidth={1}\n strokeDasharray={5.5}\n stroke={lineColor!}\n opacity={0.5}\n visibility={this.state.displayOfLine}\n {...pointLineOptions}\n />,\n );\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\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(xScale);\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 xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return graph;\n };\n\n private _getCircleRadius = (xDataPoint: number, circleRadius: number): number => {\n const { isCircleClicked, nearestCircleToHighlight } = this.state;\n if (isCircleClicked && nearestCircleToHighlight === xDataPoint) {\n return 1;\n } else if (nearestCircleToHighlight === xDataPoint) {\n return circleRadius;\n } else {\n return 0;\n }\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legend: string) => {\n return (\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"]}
|
|
1
|
+
{"version":3,"file":"AreaChart.base.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.base.tsx"],"names":[],"mappings":";;;;AAAA,6BAA+B;AAC/B,qCAAkD;AAClD,6CAA2C;AAC3C,6CAAkD;AAClD,qCAA4G;AAC5G,2DAAiG;AACjG,qCAYqB;AACrB,2DAAiE;AACjE,+CAS+B;AAC/B,0CAAoD;AACpD,uDAA8D;AAE9D,IAAM,aAAa,GAAG,8BAAkB,EAA0C,CAAC;AAEnF,8DAA8D;AAC9D,IAAM,MAAM,GAAG,mBAAQ,CAAC,UAAC,CAAM,IAAK,OAAA,CAAC,CAAC,CAAC,EAAH,CAAG,CAAC,CAAC,IAAI,CAAC;AAE9C,IAAM,cAAc,GAAG,YAAY,CAAC;AAEpC,IAAK,mBAGJ;AAHD,WAAK,mBAAmB;IACtB,0CAAmB,CAAA;IACnB,sCAAe,CAAA;AACjB,CAAC,EAHI,mBAAmB,KAAnB,mBAAmB,QAGvB;AAyBD;IAAmC,yCAAiD;IA6BlF,uBAAmB,KAAsB;QAAzC,YACE,kBAAM,KAAK,CAAC,SAuBb;QAuFO,iBAAW,GAAG,UAAC,OAAiB;YACtC,KAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,CAAC,CAAC;QAEM,sBAAgB,GAAG,UAAC,UAAgF;YAC1G,UAAU,CAAC,OAAO,EAAE,CAAC;YACb,IAAA,IAAI,GAAK,KAAI,CAAC,KAAK,KAAf,CAAgB;YACpB,IAAA,aAAa,GAAK,IAAI,cAAT,CAAU;YAC/B,8DAA8D;YAC9D,IAAM,OAAO,GAAG,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,0BAAW,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,OAAO,CAAE,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChH,IAAM,CAAC,GAAG,MAAM,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAClD,IAAM,EAAE,GAAG,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAwB,CAAC;YAChE,IAAM,EAAE,GAAG,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAwB,CAAC;YAC5D,IAAI,QAAQ,GAAsB,IAAI,CAAC;YACvC,IAAI,gBAAgB,GAAkC,IAAI,CAAC;YAC3D,IAAI,KAAK,GAAkB,IAAI,CAAC;YAChC,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE;gBACxC,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC;gBACxB,KAAK,GAAG,CAAC,CAAC;aACX;iBAAM,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,SAAS,EAAE;gBAC/C,gBAAgB,GAAG,EAAE,CAAC,CAAC,CAAC;gBACxB,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;aACf;iBAAM;gBACL,QAAQ,GAAG,qBAAa,CAAC,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAe,CAAC;gBAC1E,IAAI,EAAE,SAAA,CAAC;gBACP,IAAI,MAAM,SAAA,CAAC;gBACX,IAAI,MAAM,SAAA,CAAC;gBACX,QAAQ,QAAQ,EAAE;oBAChB,KAAK,kBAAU,CAAC,QAAQ;wBACtB,EAAE,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;wBACjC,MAAM,GAAI,EAAE,CAAC,CAAU,CAAC,OAAO,EAAE,CAAC;wBAClC,MAAM,GAAI,EAAE,CAAC,CAAU,CAAC,OAAO,EAAE,CAAC;wBAClC,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC/E,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAClE,MAAM;oBACR,KAAK,kBAAU,CAAC,WAAW;wBACzB,EAAE,GAAG,OAAiB,CAAC;wBACvB,MAAM,GAAG,EAAE,CAAC,CAAW,CAAC;wBACxB,MAAM,GAAG,EAAE,CAAC,CAAW,CAAC;wBACxB,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;wBAC/E,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;wBAClE,MAAM;oBACR;wBACE,MAAM;iBACT;aACF;YAEK,IAAA,KAAsD,aAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAe,CAAC,EAA3F,gBAAgB,sBAAA,EAAE,6BAA6B,mCAA4C,CAAC;YACpG,IAAM,aAAa,GAAG,gBAAgB,YAAY,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAC9G,IAAM,YAAY,GAAG,gBAAgB,YAAY,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YACtG,8DAA8D;YAC9D,IAAM,KAAK,GAAQ,gBAAI,CAAC,KAAI,CAAC,cAAc,EAAE,UAAC,OAA+B;gBAC3E,OAAO,OAAO,CAAC,CAAC,KAAK,YAAY,CAAC;YACpC,CAAC,CAAC,CAAC;YACH,IAAM,wBAAwB,GAC5B,QAAQ,KAAK,kBAAU,CAAC,QAAQ,CAAC,CAAC,CAAE,gBAAyB,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,gBAAgB,CAAC;YAC7F,IAAM,uBAAuB,GAAG,KAAI,CAAC,KAAK,CAAC,wBAAwB,KAAK,wBAAwB,CAAC;YACjG,oFAAoF;YACpF,IAAI,KAAK,IAAI,uBAAuB,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;gBACxE,KAAI,CAAC,QAAQ,CAAC;oBACZ,wBAAwB,EAAE,wBAAwB;oBAClD,gBAAgB,EAAE,KAAK;oBACvB,oBAAoB,EAAE,IAAI;oBAC1B,UAAU,EAAE,KAAI,CAAC,eAAe,CAAC,gBAAgB,CAAC;oBAClD,aAAa,EAAE,mBAAmB,CAAC,IAAI;oBACvC,eAAe,EAAE,KAAK;oBACtB,iBAAiB,EAAE,KAAM;oBACzB,WAAW,EAAE,KAAK,CAAC,MAAM;oBACzB,qBAAqB,EAAE,KAAM;oBAC7B,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,aAAa;oBAChE,6BAA6B,+BAAA;iBAC9B,CAAC,CAAC;aACJ;iBAAM;gBACL;;;;;;;;;;;;;;;;;kBAiBE;aACH;YACD,IAAI,CAAC,KAAK,EAAE;gBACV,KAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,KAAK;oBACvB,wBAAwB,EAAE,wBAAwB;oBAClD,aAAa,EAAE,mBAAmB,CAAC,IAAI;oBACvC,eAAe,EAAE,KAAK;iBACvB,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QACF;;WAEG;QACK,qBAAe,GAAG;YACxB,IAAI;QACN,CAAC,CAAC;QAEM,4BAAsB,GAAG;YAC/B,KAAI,CAAC,QAAQ,CAAC;gBACZ,WAAW,EAAE,IAAI;gBACjB,gBAAgB,EAAE,KAAK;gBACvB,wBAAwB,EAAE,IAAI;gBAC9B,UAAU,EAAE,CAAC;gBACb,aAAa,EAAE,mBAAmB,CAAC,IAAI;gBACvC,eAAe,EAAE,KAAK;gBACtB,iBAAiB,EAAE,SAAS;gBAC5B,qBAAqB,EAAE,SAAS;gBAChC,WAAW,EAAE,SAAS;gBACtB,WAAW,EAAE,EAAE;aAChB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,8DAA8D;QACtD,qBAAe,GAAG,UAAC,IAAc,EAAE,OAAY;YACrD,IAAM,aAAa,GAAG,gBAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;YACpD,IAAM,SAAS,GAAG,cAAK,CAAC,aAAa,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,UAAA,EAAE,IAAI,OAAA,EAAE,CAAC,CAAC,CAAC,EAAL,CAAK,CAAE,CAAC;YAC/E,IAAM,WAAW,GAAoC,EAAE,CAAC;YACxD,8DAA8D;YAC9D,aAAa,CAAC,OAAO,CAAC,UAAC,KAAU;gBAC/B,IAAM,YAAY,GAA6B,EAAE,CAAC;gBAClD,8DAA8D;gBAC9D,KAAK,CAAC,OAAO,CAAC,UAAC,CAAM;oBACnB,YAAY,CAAC,IAAI,CAAC;wBAChB,MAAM,EAAE,CAAC;wBACT,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI;qBAClB,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;gBACH,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,KAAI,CAAC,kBAAkB,GAAG,WAAW,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;YAC/E,OAAO;gBACL,WAAW,aAAA;gBACX,SAAS,WAAA;aACV,CAAC;QACJ,CAAC,CAAC;QAEM,oBAAc,GAAG,UAAC,MAA0B;YAClD,IAAM,cAAc,GAA0B,EAAE,CAAC;YACjD,IAAM,OAAO,GAA6B,EAAE,CAAC;YAC7C,IAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,IAAM,aAAa,GAAG,mBAAW,CAAC,MAAO,CAAC,CAAC;YAE3C,MAAM;gBACJ,MAAM,CAAC,MAAM;gBACb,MAAM,CAAC,OAAO,CAAC,UAAC,gBAAkC;oBAChD,MAAM,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAM,CAAC,CAAC;oBACrC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC;oBAC5C,cAAc,CAAC,IAAI,OAAnB,cAAc,EAAS,gBAAgB,CAAC,IAAI,EAAE;gBAChD,CAAC,CAAC,CAAC;YAEL,IAAI,OAAO,GAAG,cAAc,CAAC;;gBAE3B,IAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/F,IAAM,mBAAmB,GAA0B,OAAO,CAAC,MAAM,CAC/D,UAAC,KAA0B,IAAK,OAAA,CAAC,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,UAAU,EAA7E,CAA6E,CAC9G,CAAC;gBACF,8DAA8D;gBAC9D,IAAM,aAAa,GAAQ,EAAE,CAAC;gBAC9B,mBAAmB,CAAC,OAAO,CAAC,UAAC,eAAoC,EAAE,KAAa;oBAC9E,aAAa,CAAC,IAAI,GAAG,eAAe,CAAC,CAAC,CAAC;oBACvC,aAAa,CAAC,UAAQ,KAAO,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC;gBACrD,CAAC,CAAC,CAAC;gBACH,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAC5B,uCAAuC;gBACvC,IAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACxF,OAAO,GAAG,OAAO,CAAC,MAAM,CACtB,UAAC,KAA0B,IAAK,OAAA,CAAC,KAAK,CAAC,CAAC,YAAY,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAtE,CAAsE,CACvG,CAAC;;YAhBJ,OAAO,OAAO,CAAC,MAAM;;aAiBpB;YAED,qDAAqD;YACrD,IAAM,UAAU,GAAW,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAE,CAAC,MAAM,CAAC;YACtE,IAAM,IAAI,GAAa,EAAE,CAAC;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvC,IAAM,MAAM,GAAG,UAAQ,CAAG,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aACnB;YAED,kCAAkC;YAClC,IAAM,WAAW,GAAG,KAAI,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAExD,OAAO;gBACL,MAAM,QAAA;gBACN,OAAO,SAAA;gBACP,IAAI,MAAA;gBACJ,WAAW,aAAA;gBACX,aAAa,eAAA;aACd,CAAC;QACJ,CAAC,CAAC;QAEM,2BAAqB,GAAG;YAC9B,OAAO,KAAI,CAAC,KAAK,CAAC,uBAAuB;gBACvC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,KAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;gBAClE,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,2BAA2B;oBACxC,CAAC,CAAC,KAAI,CAAC,KAAK,CAAC,2BAA2B,CAAC,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC;oBAC1E,CAAC,CAAC,IAAI,CAAC;QACX,CAAC,CAAC;QAEM,mBAAa,GAAG;QACtB,8DAA8D;QAC9D,KAAU;QACV,8DAA8D;QAC9D,KAAU,EACV,eAAuB,EACvB,cAAsB,EACtB,QAA2B;YAE3B,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,UAAU,CAAC,eAAe,EAAE,KAAK,EAAE,KAAK,EAAE,QAAS,CAAC,CAAC;QAC1E,CAAC,CAAC;QA0BM,oBAAc,GAAG,UAAC,MAA0B;YAClD,IAAM,IAAI,GAAG,MAAM,CAAC;YACpB,IAAM,OAAO,GAAc,EAAE,CAAC;YAE9B,IAAI,CAAC,OAAO,CAAC,UAAC,eAAiC;gBAC7C,IAAM,KAAK,GAAW,eAAe,CAAC,KAAM,CAAC;gBAC7C,IAAM,mBAAmB,GAAG,OAAO,CAAC,MAAM,CACxC,UAAC,GAAY,IAAK,OAAA,GAAG,CAAC,KAAK,KAAK,eAAe,CAAC,MAAM,IAAI,GAAG,CAAC,KAAK,KAAK,KAAK,EAA3D,CAA2D,CAC9E,CAAC;gBACF,IAAI,mBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE;oBACnC,OAAO;iBACR;gBAED,IAAM,MAAM,GAAY;oBACtB,KAAK,EAAE,eAAe,CAAC,MAAM;oBAC7B,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE;wBACN,KAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC9C,CAAC;oBACD,WAAW,EAAE;wBACX,KAAI,CAAC,sBAAsB,EAAE,CAAC;wBAC9B,KAAI,CAAC,cAAc,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;oBAC9C,CAAC;oBACD,gBAAgB,EAAE;wBAChB,KAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,CAAC;iBACF,CAAC;gBAEF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,OAAO,CACL,oBAAC,eAAO,qBACN,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,KAAI,CAAC,KAAK,CAAC,oBAAoB,EAC9C,gBAAgB,EAAE,KAAI,CAAC,KAAK,CAAC,uBAAuB,EACpD,yBAAyB,EAAE,KAAI,CAAC,KAAK,CAAC,mCAAmC,IACrE,KAAI,CAAC,KAAK,CAAC,WAAW,EAC1B,CACH,CAAC;QACJ,CAAC,CAAC;QAEM,uBAAiB,GAAG,UAAC,IAA8B;YACzD,IAAI,IAAI,EAAE;gBACR,IAAI,EAAE,CAAC;aACR;YACD,KAAI,CAAC,QAAQ,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3C,CAAC,CAAC;QAEM,iBAAW,GAAG,UAAC,MAAc;YACnC,IAAI,CAAC,KAAI,CAAC,kBAAkB,EAAE;gBAC5B,OAAO,GAAG,CAAC;aACZ;iBAAM;gBACL,IAAM,OAAO,GAAG,KAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;gBAC3F,OAAO,OAAO,CAAC;aAChB;QACH,CAAC,CAAC;QAEM,qBAAe,GAAG,UAAC,MAAc;YACvC,IAAI,CAAC,KAAI,CAAC,kBAAkB,EAAE;gBAC5B,OAAO,CAAC,CAAC;aACV;iBAAM;gBACL,IAAI,OAAO,GAAG,GAAG,CAAC;gBAClB,IAAI,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;oBAC/B,OAAO,GAAG,CAAC,CAAC;iBACb;gBACD,IAAI,CAAC,KAAI,CAAC,oBAAoB,EAAE,EAAE;oBAChC,OAAO,GAAG,KAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;iBACrD;gBACD,OAAO,OAAO,CAAC;aAChB;QACH,CAAC,CAAC;QAEM,4BAAsB,GAAG,UAAC,UAAyB,EAAE,SAAiB,EAAE,QAAgB;YAC9F,IAAI,SAAS,GAAG,SAAS,CAAC;YAC1B,IAAI,KAAI,CAAC,KAAK,CAAC,wBAAwB,KAAK,UAAU,EAAE;gBACtD,KAAI,CAAC,oBAAoB,GAAG,QAAQ,CAAC;gBACrC,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,eAAe,EAAE;oBAC/B,SAAS,GAAG,KAAI,CAAC,KAAK,CAAC,KAAM,CAAC,OAAO,CAAC,KAAK,CAAC;iBAC7C;aACF;YAED,OAAO,SAAS,CAAC;QACnB,CAAC,CAAC;QAEF,8DAA8D;QACtD,gBAAU,GAAG,UAAC,eAAuB,EAAE,MAAW,EAAE,MAAW,EAAE,QAAoB;YAC3F,IAAM,MAAM,GAAG,KAAI,CAAC,iBAAiB,CAAC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/D,IAAA,KAAqC,KAAI,CAAC,KAAK,CAAC,IAAI,EAAlD,YAAY,kBAAA,EAAE,gBAAgB,sBAAoB,CAAC;YAC3D,IAAM,IAAI,GAAG,eAAM,EAAE;gBACnB,8DAA8D;iBAC7D,CAAC,CAAC,UAAC,CAAM,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAd,CAAc,CAAC;gBAC9B,8DAA8D;iBAC7D,EAAE,CAAC,UAAC,CAAM,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAnB,CAAmB,CAAC;gBACpC,8DAA8D;iBAC7D,EAAE,CAAC,UAAC,CAAM,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAnB,CAAmB,CAAC;iBACnC,KAAK,CAAC,yBAAY,CAAC,CAAC;YACvB,IAAM,IAAI,GAAG,eAAM,EAAE;gBACnB,8DAA8D;iBAC7D,CAAC,CAAC,UAAC,CAAM,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAd,CAAc,CAAC;gBAC9B,8DAA8D;iBAC7D,CAAC,CAAC,UAAC,CAAM,IAAK,OAAA,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAnB,CAAmB,CAAC;iBAClC,KAAK,CAAC,yBAAY,CAAC,CAAC;YAEvB,IAAM,KAAK,GAAkB,EAAE,CAAC;YAChC,IAAI,SAAiB,CAAC;YACtB,8DAA8D;YAC9D,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAC,iBAA6B,EAAE,KAAa;gBACrE,KAAK,CAAC,IAAI,CACR,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAK,KAAK,eAAU,KAAI,CAAC,iBAAmB;oBAC7D,+CACE,EAAE,EAAK,KAAK,cAAS,KAAI,CAAC,iBAAmB,EAC7C,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAE,EAC3B,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,CAAC,EACd,MAAM,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAC3B,OAAO,EAAE,KAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,EACpD,WAAW,EAAE,KAAI,CAAC,gBAAgB,EAClC,UAAU,EAAE,KAAI,CAAC,eAAe,EAChC,WAAW,EAAE,KAAI,CAAC,gBAAgB,IAC9B,MAAM,CAAC,KAAK,CAAE,CAAC,WAAW,EAC9B;oBACD,iBAAiB,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,CAChC,gCACE,EAAE,EAAK,KAAK,eAAU,KAAI,CAAC,iBAAmB,EAC9C,EAAE,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EACrC,EAAE,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC1C,CAAC,EAAE,CAAC,EACJ,MAAM,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EAC3B,WAAW,EAAE,CAAC,EACd,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EACzB,OAAO,EAAE,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC7B,WAAW,EAAE,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,EACpD,WAAW,EAAE,KAAI,CAAC,gBAAgB,EAClC,UAAU,EAAE,KAAI,CAAC,eAAe,EAChC,WAAW,EAAE,KAAI,CAAC,gBAAgB,GAClC,CACH,CAAC,CAAC,CAAC,CACF,8BACE,EAAE,EAAK,KAAK,eAAU,KAAI,CAAC,iBAAmB,EAC9C,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAE,EAC3B,IAAI,EAAE,KAAI,CAAC,OAAO,CAAC,KAAK,CAAC,EACzB,OAAO,EAAE,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC7B,WAAW,EAAE,KAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,CAAE,CAAC,MAAM,CAAC,EACpD,WAAW,EAAE,KAAI,CAAC,gBAAgB,EAClC,UAAU,EAAE,KAAI,CAAC,eAAe,EAChC,WAAW,EAAE,KAAI,CAAC,gBAAgB,GAClC,CACH,CACc,CAClB,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAM,YAAY,GAAG,YAAY,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACjF,8DAA8D;YAC9D,KAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAC,iBAA6B,EAAE,KAAa;gBACrE,IAAI,MAAM,CAAC,MAAM,KAAK,KAAK,EAAE;oBAC3B,OAAO;iBACR;gBACD,KAAK,CAAC,IAAI,CACR,2BAAG,GAAG,EAAK,KAAK,cAAS,KAAI,CAAC,iBAAmB,EAAE,CAAC,EAAE,IAAI,CAAC,iBAAiB,CAAE,EAAE,QAAQ,EAAC,YAAY,IAClG,iBAAiB,CAAC,GAAG,CAAC,UAAC,WAAwB,EAAE,UAAkB;oBAClE,IAAM,QAAQ,GAAM,KAAI,CAAC,SAAS,UAAI,KAAK,GAAG,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,UAAU,CAAE,CAAC;oBACzF,IAAM,UAAU,GAAG,WAAW,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,CAAC;oBACpG,SAAS,GAAG,MAAM,CAAC,KAAK,CAAE,CAAC,KAAM,CAAC;oBAClC,OAAO,CACL,iDACE,GAAG,EAAE,QAAQ,EACb,EAAE,EAAE,QAAQ,uBACO,IAAI,EACvB,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAC5B,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EACjC,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,CAAC,EACd,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,EACzE,IAAI,EAAE,KAAI,CAAC,sBAAsB,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC,EAClE,UAAU,EAAE,KAAI,CAAC,eAAe,EAChC,WAAW,EAAE,KAAI,CAAC,gBAAgB,EAClC,OAAO,EAAE,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAI,EAAE,MAAM,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,gBAAiB,CAAC,IACzF,YAAY,IAChB,CAAC,EAAE,KAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,YAAY,CAAC,IAClD,CACH,CAAC;gBACJ,CAAC,CAAC,CACA,CACL,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,KAAK,CAAC,IAAI,CACR,+CACE,EAAE,EAAE,KAAI,CAAC,eAAe,EACxB,GAAG,EAAE,KAAI,CAAC,eAAe,EACzB,EAAE,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EACzB,EAAE,EAAE,CAAC,EACL,EAAE,EAAE,KAAI,CAAC,KAAK,CAAC,UAAU,EACzB,EAAE,EAAE,eAAe,EACnB,WAAW,EAAE,CAAC,EACd,eAAe,EAAE,GAAG,EACpB,MAAM,EAAE,SAAU,EAClB,OAAO,EAAE,GAAG,EACZ,UAAU,EAAE,KAAI,CAAC,KAAK,CAAC,aAAa,IAChC,gBAAgB,EACpB,CACH,CAAC;YACF,IAAM,UAAU,GAAG,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,MAAO,EAAE;gBACnD,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAM;aACzB,CAAC,CAAC;YACH,mEAAmE;YACnE,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE;gBACtC,IAAI;oBACF,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;oBAC/F,oCAAoC;iBACrC;gBAAC,OAAO,CAAC,EAAE,GAAE;aACf;YACD,4CAA4C;YAC5C,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,eAAe,IAAI,KAAI,CAAC,KAAK,CAAC,sBAAsB,EAAE;gBACpE,IAAM,YAAY,GAAG,qBAAQ,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACrD,IAAI;oBACF,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAC,IAAI,QAAQ,CAAC,cAAc,CAAC,KAAI,CAAC,UAAU,CAAE,CAAC,MAAM,EAAE,CAAC;oBAC/F,oCAAoC;iBACrC;gBAAC,OAAO,CAAC,EAAE,GAAE;gBACd,IAAM,YAAY,GAAG;oBACnB,UAAU,EAAE,UAAU,CAAC,OAAQ;oBAC/B,EAAE,EAAE,KAAI,CAAC,UAAU;oBACnB,KAAK,EAAE,YAAY;iBACpB,CAAC;gBACF,YAAY,IAAI,4BAAoB,CAAC,YAAY,CAAC,CAAC;aACpD;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEM,sBAAgB,GAAG,UAAC,UAAkB,EAAE,YAAoB;YAC5D,IAAA,KAAgD,KAAI,CAAC,KAAK,EAAxD,eAAe,qBAAA,EAAE,wBAAwB,8BAAe,CAAC;YACjE,IAAI,eAAe,IAAI,wBAAwB,KAAK,UAAU,EAAE;gBAC9D,OAAO,CAAC,CAAC;aACV;iBAAM,IAAI,wBAAwB,KAAK,UAAU,EAAE;gBAClD,OAAO,YAAY,CAAC;aACrB;iBAAM;gBACL,OAAO,CAAC,CAAC;aACV;QACH,CAAC,CAAC;QAEM,mBAAa,GAAG;YACtB,KAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;;;;WAKG;QACK,wBAAkB,GAAG,UAAC,MAAc;YAC1C,OAAO,CACL,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,MAAM,IAAI,CAAC,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,MAAM,CAAC,CACjH,CAAC;QACJ,CAAC,CAAC;QAEF;;WAEG;QACK,0BAAoB,GAAG;YAC7B,OAAO,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC;QAC5E,CAAC,CAAC;QAEM,uBAAiB,GAAG,UAAC,aAAkC;YAC7D,OAAO,aAAa;gBAClB,CAAC,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,IAAI,EAAE,KAAK;;oBAC5B,IAAI,KAAa,CAAC;oBAClB,sDAAsD;oBACtD,IAAI,OAAO,IAAI,CAAC,KAAK,KAAK,WAAW,EAAE;wBACrC,KAAK,GAAG,oBAAY,CAAC,KAAK,EAAE,CAAC,EAAE,MAAA,KAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC;qBAC9D;yBAAM;wBACL,KAAK,GAAG,yBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,MAAA,KAAI,CAAC,KAAK,CAAC,KAAK,0CAAE,UAAU,CAAC,CAAC;qBACrE;oBAED,6CAAY,IAAI,KAAE,KAAK,OAAA,IAAG;gBAC5B,CAAC,CAAC;gBACJ,CAAC,CAAC,EAAE,CAAC;QACT,CAAC,CAAC;QA1nBA,KAAI,CAAC,UAAU,GAAG,2BAAe,CAAC,KAAI,CAAC,cAAc,CAAC,CAAC;QACvD,KAAI,CAAC,KAAK,GAAG;YACX,cAAc,EAAE,EAAE;YAClB,YAAY,EAAE,EAAE;YAChB,WAAW,EAAE,EAAE;YACf,gBAAgB,EAAE,KAAK;YACvB,WAAW,EAAE,IAAI;YACjB,WAAW,EAAE,EAAE;YACf,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,mBAAmB,CAAC,IAAI;YACvC,eAAe,EAAE,KAAK;YACtB,wBAAwB,EAAE,IAAI;YAC9B,oBAAoB,EAAE,KAAK;SAC5B,CAAC;QACF,4BAAgB,CAAC,cAAc,EAAE,KAAK,EAAE;YACtC,kBAAkB,EAAE,oDAAoD;SACzE,CAAC,CAAC;QACH,KAAI,CAAC,iBAAiB,GAAG,iBAAK,CAAC,YAAY,CAAC,CAAC;QAC7C,KAAI,CAAC,eAAe,GAAG,iBAAK,CAAC,eAAe,CAAC,CAAC;QAC9C,KAAI,CAAC,SAAS,GAAG,iBAAK,CAAC,QAAQ,CAAC,CAAC;QACjC,KAAI,CAAC,OAAO,GAAG,iBAAK,CAAC,WAAW,CAAC,CAAC;QAClC,KAAI,CAAC,UAAU,GAAG,iBAAK,CAAC,oBAAoB,CAAC,CAAC;;IAChD,CAAC;IAEM,0CAAkB,GAAzB;QACE,IAAI,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;YACnC,IAAI,CAAC,QAAQ,CAAC;gBACZ,WAAW,EAAE,MAAI,IAAI,CAAC,oBAAsB;gBAC5C,gBAAgB,EAAE,IAAI;gBACtB,oBAAoB,EAAE,KAAK;aAC5B,CAAC,CAAC;SACJ;IACH,CAAC;IAEM,8BAAM,GAAb;QAAA,iBAyEC;QAxEO,IAAA,KAAgC,IAAI,CAAC,KAAK,CAAC,IAAI,EAA7C,aAAa,mBAAA,EAAE,UAAU,gBAAoB,CAAC;QACtD,IAAM,MAAM,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,CAAC;QAC/C,IAAA,KAAkD,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAvE,MAAM,YAAA,EAAE,OAAO,aAAA,EAAE,WAAW,iBAAA,EAAE,aAAa,mBAA4B,CAAC;QAChF,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;QACpC,IAAM,eAAe,GAAG,oBAAY,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,YAAY,GAAG,WAAW,CAAC,WAAW,CAAC;QAC5C,IAAM,OAAO,GAAgB,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAEzD,IAAM,UAAU,GAAG;YACjB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;YACjC,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU;SAClC,CAAC;QAEF,IAAM,YAAY,sBAChB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAC9B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,eAAe,EAAE,yBAAe,CAAC,WAAW,EAC5C,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EACnC,EAAE,EAAE,YAAU,IAAI,CAAC,gBAAkB,EACrC,QAAQ,EAAE,EAAE,EACZ,aAAa,EAAE,KAAK,EACpB,eAAe,EAAE,IAAI,EACrB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,mBAAmB,EAAE,IAAI,EACzB,6BAA6B,EAAE,IAAI,CAAC,KAAK,CAAC,6BAA6B,IACpE,IAAI,CAAC,KAAK,CAAC,YAAY,CAC3B,CAAC;QACF,OAAO,CACL,oBAAC,sBAAc,uBACT,IAAI,CAAC,KAAK,IACd,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,kBAAU,CAAC,SAAS,EAC/B,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,OAAO,EACnB,iBAAiB,QACjB,SAAS,EAAE,eAAe,CAAC,CAAC,CAAC,kBAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAU,CAAC,WAAW,EACzE,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,WAAW,CAAC,SAAS,EAChC,YAAY,EAAE,IAAI,CAAC,aAAa,EAChC,UAAU,EAAE,IAAI,CAAC,WAAW,EAC5B,iBAAiB,EAAE,IAAI,CAAC,qBAAqB,EAAE,EAC/C,iBAAiB,EAAE,IAAI,CAAC,sBAAsB;YAC9C,sCAAsC;YACtC,kDAAkD;YAClD,QAAQ,EAAE,UAAC,KAAkB;gBAC3B,KAAI,CAAC,eAAe,GAAG,KAAK,CAAC,MAAM,CAAC;gBACpC,IAAM,KAAK,GAAG,KAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;gBAC3C,IAAM,MAAM,GAAG,KAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC7D,IAAM,UAAU,GAAG,KAAK,CAAC,eAAgB,GAAG,KAAI,CAAC,OAAO,CAAC,GAAI,CAAC;gBAC9D,OAAO,CACL;oBACE;wBACE,8BACE,EAAE,EAAE,KAAI,CAAC,OAAO,EAChB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,aAAa,EACnB,WAAW,EAAE,KAAI,CAAC,gBAAgB,EAClC,UAAU,EAAE,KAAI,CAAC,eAAe,EAChC,WAAW,EAAE,KAAI,CAAC,gBAAgB,GAClC,CACA;oBACJ,+BAAI,KAAI,CAAC,MAAM,CAAK,CACnB,CACJ,CAAC;YACJ,CAAC,IACD,CACH,CAAC;IACJ,CAAC;IAgOO,sCAAc,GAAtB,UAAuB,MAAc;QACnC,IAAI,IAAI,CAAC,KAAK,CAAC,cAAc,KAAK,MAAM,EAAE;YACxC,IAAI,CAAC,QAAQ,CAAC;gBACZ,cAAc,EAAE,EAAE;aACnB,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,QAAQ,CAAC;gBACZ,cAAc,EAAE,MAAM;aACvB,CAAC,CAAC;SACJ;IACH,CAAC;IAEO,sCAAc,GAAtB,UAAuB,MAAc;QACnC,IAAI,CAAC,QAAQ,CAAC;YACZ,YAAY,EAAE,MAAM;SACrB,CAAC,CAAC;IACL,CAAC;IAEO,sCAAc,GAAtB;QACE,IAAI,CAAC,QAAQ,CAAC;YACZ,YAAY,EAAE,EAAE;SACjB,CAAC,CAAC;IACL,CAAC;IA0RH,oBAAC;AAAD,CAAC,AA1pBD,CAAmC,KAAK,CAAC,SAAS,GA0pBjD;AA1pBY,sCAAa","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, bisector } from 'd3-array';\nimport { clientPoint } from 'd3-selection';\nimport { select as d3Select } from 'd3-selection';\nimport { area as d3Area, stack as d3Stack, curveMonotoneX as d3CurveBasis, line as d3Line } from 'd3-shape';\nimport { classNamesFunction, find, getId, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ICustomizedCalloutData,\n IAreaChartProps,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n IChildProps,\n IMargins,\n IAreaChartStyleProps,\n IAreaChartStyles,\n} from '../../index';\nimport { warnDeprecations } from '@fluentui/react/lib/Utilities';\nimport {\n calloutData,\n getXAxisType,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n getNextColor,\n getColorFromToken,\n} from '../../utilities/index';\nimport { ILegend, Legends } from '../Legends/index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\n\nconst getClassNames = classNamesFunction<IAreaChartStyleProps, IAreaChartStyles>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst COMPONENT_NAME = 'AREA CHART';\n\nenum InterceptVisibility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IAreaChartAreaPoint {\n xVal: string | number;\n values: IAreaChartDataSetPoint;\n}\nexport interface IAreaChartDataSetPoint {\n [key: string]: number | string;\n}\nexport interface IDPointType {\n values: { 0: number; 1: number; data: {} };\n xVal: number | Date;\n}\n\nexport interface IAreaChartState extends IBasestate {\n lineXValue: number;\n displayOfLine: InterceptVisibility;\n isCircleClicked: boolean;\n dataPointCalloutProps?: ICustomizedCalloutData;\n stackCalloutProps?: ICustomizedCalloutData;\n nearestCircleToHighlight: number | string | Date | null;\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n isShowCalloutPending: boolean;\n}\n\nexport class AreaChartBase extends React.Component<IAreaChartProps, IAreaChartState> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any;\n private _createSet: (data: ILineChartPoints[]) => {\n colors: string[];\n opacity: number[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n stackedInfo: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n calloutPoints: any;\n };\n private _colors: string[];\n private _opacity: number[];\n private _uniqueIdForGraph: string;\n private _verticalLineId: string;\n private _circleId: string;\n private _uniqueCallOutID: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _stackedData: any;\n private _chart: JSX.Element[];\n private margins: IMargins;\n private _rectId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisRectScale: any;\n // determines if the given area chart has multiple stacked bar charts\n private _isMultiStackChart: boolean;\n private _tooltipId: string;\n private _highlightedCircleId: string;\n\n public constructor(props: IAreaChartProps) {\n super(props);\n this._createSet = memoizeFunction(this._createDataSet);\n this.state = {\n selectedLegend: '',\n activeLegend: '',\n hoverXValue: '',\n isCalloutVisible: false,\n refSelected: null,\n YValueHover: [],\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n nearestCircleToHighlight: null,\n isShowCalloutPending: false,\n };\n warnDeprecations(COMPONENT_NAME, props, {\n showYAxisGridLines: 'Dont use this property. Lines are drawn by default',\n });\n this._uniqueIdForGraph = getId('areaChart_');\n this._verticalLineId = getId('verticalLine_');\n this._circleId = getId('circle');\n this._rectId = getId('rectangle');\n this._tooltipId = getId('AreaChartTooltipID');\n }\n\n public componentDidUpdate() {\n if (this.state.isShowCalloutPending) {\n this.setState({\n refSelected: `#${this._highlightedCircleId}`,\n isCalloutVisible: true,\n isShowCalloutPending: false,\n });\n }\n }\n\n public render(): JSX.Element {\n const { lineChartData, chartTitle } = this.props.data;\n const points = this._addDefaultColors(lineChartData);\n const { colors, opacity, stackedInfo, calloutPoints } = this._createSet(points);\n this._calloutPoints = calloutPoints;\n const isXAxisDateType = getXAxisType(points);\n this._colors = colors;\n this._opacity = opacity;\n this._stackedData = stackedInfo.stackedData;\n const legends: JSX.Element = this._getLegendData(points);\n\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n const calloutProps = {\n target: this.state.refSelected,\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n gapSpace: 15,\n isBeakVisible: false,\n setInitialFocus: true,\n onDismiss: this._closeCallout,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n return (\n <CartesianChart\n {...this.props}\n chartTitle={chartTitle}\n points={points}\n chartType={ChartTypes.AreaChart}\n calloutProps={calloutProps}\n legendBars={legends}\n isCalloutForStack\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n tickParams={tickParams}\n maxOfYVal={stackedInfo.maxOfYVal}\n getGraphData={this._getGraphData}\n getmargins={this._getMargins}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisRectScale = props.xScale;\n const ticks = this._xAxisRectScale.ticks();\n const width1 = this._xAxisRectScale(ticks[ticks.length - 1]);\n const rectHeight = props.containerHeight! - this.margins.top!;\n return (\n <>\n <g>\n <rect\n id={this._rectId}\n width={width1}\n height={rectHeight}\n fill={'transparent'}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n </g>\n <g>{this._chart}</g>\n </>\n );\n }}\n />\n );\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _onRectMouseMove = (mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n // This will get the value of the X when mouse is on the chart\n const xOffset = this._xAxisRectScale.invert(clientPoint(document.getElementById(this._rectId)!, mouseEvent)[0]);\n const i = bisect(lineChartData![0].data, xOffset);\n const d0 = lineChartData![0].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![0].data[i] as ILineChartDataPoint;\n let axisType: XAxisTypes | null = null;\n let pointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n if (d0 === undefined && d1 !== undefined) {\n pointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n pointToHighlight = d0.x;\n index = i - 1;\n } else {\n axisType = getTypeOfAxis(lineChartData![0].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 pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![0].data[index as number];\n const formattedDate = pointToHighlight instanceof Date ? pointToHighlight.toLocaleString() : pointToHighlight;\n const modifiedXVal = pointToHighlight instanceof Date ? pointToHighlight.getTime() : pointToHighlight;\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 nearestCircleToHighlight =\n axisType === XAxisTypes.DateAxis ? (pointToHighlight as Date).getTime() : pointToHighlight;\n const pointToHighlightUpdated = this.state.nearestCircleToHighlight !== nearestCircleToHighlight;\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated && !this.state.isShowCalloutPending) {\n this.setState({\n nearestCircleToHighlight: nearestCircleToHighlight,\n isCalloutVisible: false,\n isShowCalloutPending: true,\n lineXValue: this._xAxisRectScale(pointToHighlight),\n displayOfLine: InterceptVisibility.show,\n isCircleClicked: false,\n stackCalloutProps: found!,\n YValueHover: found.values,\n dataPointCalloutProps: found!,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n });\n } else {\n /*\n When above if condition is false but found=true, it means either\n\n 1). pointToHighlightUpdated is false.\n For this case we dont need to do anything.\n\n 2). isShowCalloutPending is true.\n For this case there will be no callout updation for the event.\n This condition has been added to prevent repeated callout flashing.\n Currently there is a fraction of second delay between hover event and subsequent callout refresh.\n In the meantime if another event is received, the callout continues to flash for the set of\n intermediate hover events.\n\n This does not cause any issue as the user interaction takes atleast a fraction of second and the final\n callout state is ultimately achieved.\n If a user performs very swift mouse maneuver, the intermediate events will be lost but the callout experience\n remains smooth.\n */\n }\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight: nearestCircleToHighlight,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n });\n }\n };\n /**\n * just cleaning up the state which we have set in the mouse move event\n */\n private _onRectMouseOut = () => {\n /**/\n };\n\n private _handleChartMouseLeave = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n nearestCircleToHighlight: null,\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n hoverXValue: undefined,\n YValueHover: [],\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getStackedData = (keys: string[], dataSet: any) => {\n const stackedValues = d3Stack().keys(keys)(dataSet);\n const maxOfYVal = d3Max(stackedValues[stackedValues.length - 1], dp => dp[1])!;\n const stackedData: Array<IAreaChartDataSetPoint[]> = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n stackedValues.forEach((layer: any) => {\n const currentStack: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n layer.forEach((d: any) => {\n currentStack.push({\n values: d,\n xVal: d.data.xVal,\n });\n });\n stackedData.push(currentStack);\n });\n this._isMultiStackChart = stackedData && stackedData.length > 1 ? true : false;\n return {\n stackedData,\n maxOfYVal,\n };\n };\n\n private _createDataSet = (points: ILineChartPoints[]) => {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n let tempArr = allChartPoints;\n while (tempArr.length) {\n const valToCheck = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n const filteredChartPoints: ILineChartDataPoint[] = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) === valToCheck,\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n filteredChartPoints.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n // removing compared objects from array\n const val = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n tempArr = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) !== val,\n );\n }\n\n // get keys from dataset, used to create stacked data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Stacked Info used to draw graph\n const stackedInfo = this._getStackedData(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n stackedInfo,\n calloutPoints,\n };\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xAxis: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxis: any,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n this._chart = this._drawGraph(containerHeight, xAxis, yAxis, xElement!);\n };\n\n private _onLegendClick(legend: string): void {\n if (this.state.selectedLegend === legend) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legend,\n });\n }\n }\n\n private _onLegendHover(legend: string): void {\n this.setState({\n activeLegend: legend,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: '',\n });\n }\n\n private _getLegendData = (points: ILineChartPoints[]): JSX.Element => {\n const data = points;\n const actions: ILegend[] = [];\n\n data.forEach((singleChartData: ILineChartPoints) => {\n const color: string = singleChartData.color!;\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === singleChartData.legend && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: singleChartData.legend,\n color: color,\n action: () => {\n this._onLegendClick(singleChartData.legend);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(singleChartData.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n {...this.props.legendProps}\n />\n );\n };\n\n private _onDataPointClick = (func: (() => void) | undefined) => {\n if (func) {\n func();\n }\n this.setState({ isCircleClicked: true });\n };\n\n private _getOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 0.7;\n } else {\n const opacity = this._legendHighlighted(legend) || this._noLegendHighlighted() ? 0.7 : 0.1;\n return opacity;\n }\n };\n\n private _getLineOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 1;\n } else {\n let opacity = 0.3;\n if (this.state.isCalloutVisible) {\n opacity = 1;\n }\n if (!this._noLegendHighlighted()) {\n opacity = this._legendHighlighted(legend) ? 0 : 0.1;\n }\n return opacity;\n }\n };\n\n private _updateCircleFillColor = (xDataPoint: number | Date, lineColor: string, circleId: string): string => {\n let fillColor = lineColor;\n if (this.state.nearestCircleToHighlight === xDataPoint) {\n this._highlightedCircleId = circleId;\n if (!this.state.isCircleClicked) {\n fillColor = this.props.theme!.palette.white;\n }\n }\n\n return fillColor;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _drawGraph = (containerHeight: number, xScale: any, yScale: any, xElement: SVGElement): JSX.Element[] => {\n const points = this._addDefaultColors(this.props.data.lineChartData);\n const { pointOptions, pointLineOptions } = this.props.data;\n const area = d3Area()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y0((d: any) => yScale(d.values[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y1((d: any) => yScale(d.values[1]))\n .curve(d3CurveBasis);\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d.values[1]))\n .curve(d3CurveBasis);\n\n const graph: JSX.Element[] = [];\n let lineColor: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._stackedData.forEach((singleStackedData: Array<any>, index: number) => {\n graph.push(\n <React.Fragment key={`${index}-graph-${this._uniqueIdForGraph}`}>\n <path\n id={`${index}-line-${this._uniqueIdForGraph}`}\n d={line(singleStackedData)!}\n fill={'transparent'}\n strokeWidth={3}\n stroke={this._colors[index]}\n opacity={this._getLineOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...points[index]!.lineOptions}\n />\n {singleStackedData.length === 1 ? (\n <circle\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n cx={xScale(singleStackedData[0].xVal)}\n cy={yScale(singleStackedData[0].values[1])}\n r={6}\n stroke={this._colors[index]}\n strokeWidth={3}\n fill={this._colors[index]}\n opacity={this._opacity[index]}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n ) : (\n <path\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n fill={this._colors[index]}\n opacity={this._opacity[index]}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n )}\n </React.Fragment>,\n );\n });\n\n const circleRadius = pointOptions && pointOptions.r ? Number(pointOptions.r) : 8;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._stackedData.forEach((singleStackedData: Array<any>, index: number) => {\n if (points.length === index) {\n return;\n }\n graph.push(\n <g key={`${index}-dots-${this._uniqueIdForGraph}`} d={area(singleStackedData)!} clipPath=\"url(#clip)\">\n {singleStackedData.map((singlePoint: IDPointType, pointIndex: number) => {\n const circleId = `${this._circleId}_${index * this._stackedData[0].length + pointIndex}`;\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n lineColor = points[index]!.color!;\n return (\n <circle\n key={circleId}\n id={circleId}\n data-is-focusable={true}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n visibility={this.state.nearestCircleToHighlight ? 'visibility' : 'hidden'}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n onClick={this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!)}\n {...pointOptions}\n r={this._getCircleRadius(xDataPoint, circleRadius)}\n />\n );\n })}\n </g>,\n );\n });\n graph.push(\n <line\n id={this._verticalLineId}\n key={this._verticalLineId}\n x1={this.state.lineXValue}\n y1={0}\n x2={this.state.lineXValue}\n y2={containerHeight}\n strokeWidth={1}\n strokeDasharray={5.5}\n stroke={lineColor!}\n opacity={0.5}\n visibility={this.state.displayOfLine}\n {...pointLineOptions}\n />,\n );\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\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(xScale);\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 xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return graph;\n };\n\n private _getCircleRadius = (xDataPoint: number, circleRadius: number): number => {\n const { isCircleClicked, nearestCircleToHighlight } = this.state;\n if (isCircleClicked && nearestCircleToHighlight === xDataPoint) {\n return 1;\n } else if (nearestCircleToHighlight === xDataPoint) {\n return circleRadius;\n } else {\n return 0;\n }\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legend: string) => {\n return (\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 _addDefaultColors = (lineChartData?: ILineChartPoints[]): ILineChartPoints[] => {\n return lineChartData\n ? lineChartData.map((item, index) => {\n let color: string;\n // isInverted property is applicable to v8 themes only\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0, this.props.theme?.isInverted);\n } else {\n color = getColorFromToken(item.color, this.props.theme?.isInverted);\n }\n\n return { ...item, color };\n })\n : [];\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HeatMapChart.base.js","sourceRoot":"../src/","sources":["components/HeatMapChart/HeatMapChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n IAccessibilityProps,\n CartesianChart,\n IChildProps,\n IModifiedCartesianChartProps,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n} from '../../index';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { classNamesFunction, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport * as React from 'react';\nimport { IHeatMapChartProps, IHeatMapChartStyleProps, IHeatMapChartStyles } from './HeatMapChart.types';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n ChartTypes,\n convertToLocaleString,\n getAccessibleDataObject,\n XAxisTypes,\n YAxisType,\n getTypeOfAxis,\n} from '../../utilities/utilities';\nimport { Target } from '@fluentui/react';\nimport { format as d3Format } from 'd3-format';\nimport * as d3TimeFormat from 'd3-time-format';\n\ntype DataSet = {\n dataSet: RectanglesGraphData;\n yAxisPoints: string[];\n xAxisPoints: string[];\n};\ntype FlattenData = IHeatMapChartDataPoint & {\n legend: string;\n};\ninterface IRectRef {\n data: FlattenData;\n refElement: SVGGElement;\n}\ntype RectanglesGraphData = { [key: string]: FlattenData[] };\nexport interface IHeatMapChartState {\n /**\n * contains the selected legend string\n */\n selectedLegend: string;\n /**\n * contains the hovered legend string\n */\n activeLegend: string;\n /**\n * determines wethere to show or hide the callout\n * @default false\n */\n isCalloutVisible: boolean;\n /**\n * y value to be shown in callout\n */\n calloutYValue: string;\n /**\n * legend title to be shown in callout\n */\n calloutLegend: string;\n /**\n * color of the text in the callout\n */\n calloutTextColor: string;\n /**\n * The target that the Callout should try to position itself based on\n */\n target: Target;\n /**\n * ratio to show in the callout\n */\n ratio: [number, number] | null;\n\n /**\n * description message to show in the callout\n */\n descriptionMessage: string;\n /**\n * id to give to callout for accesiblity purpose\n */\n calloutId: string;\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\nconst getClassNames = classNamesFunction<IHeatMapChartStyleProps, IHeatMapChartStyles>();\nexport class HeatMapChartBase extends React.Component<IHeatMapChartProps, IHeatMapChartState> {\n private _classNames: IProcessedStyleSet<IHeatMapChartStyles>;\n private _stringXAxisDataPoints: string[];\n private _stringYAxisDataPoints: string[];\n private _createSet: (\n data: IHeatMapChartData[],\n xDate: string | undefined,\n xNum: string | undefined,\n yDate: string | undefined,\n yNum: string | undefined,\n ) => DataSet;\n private _dataSet: RectanglesGraphData;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _colorScale: 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 _yAxisScale: any;\n /**\n * This array contains ref for all the rectangles\n * drawn inside the chard\n */\n private _rectRefArray: { [key: string]: IRectRef } = {};\n private _xAxisType: XAxisTypes;\n private _yAxisType: YAxisType;\n private _calloutAnchorPoint: FlattenData | null;\n public constructor(props: IHeatMapChartProps) {\n super(props);\n const { x, y } = this._getXandY();\n this._xAxisType = getTypeOfAxis(x, true) as XAxisTypes;\n this._yAxisType = getTypeOfAxis(y, false) as YAxisType;\n /**\n * below funciton creates a new data set from the prop\n * @data and also finds all the unique x-axis datapoints\n * and y-axis datapoints(which will render in the axis in graph)\n * we store this in a memoized function, because we want to calulate\n * this set whenever props changes.\n */\n this._createSet = memoizeFunction(\n (\n data: IHeatMapChartData[],\n xDate: string | undefined,\n xNum: string | undefined,\n yDate: string | undefined,\n yNum: string | undefined,\n ): DataSet => this._createNewDataSet(data, xDate, xNum, yDate, yNum),\n );\n this.state = {\n selectedLegend: '',\n activeLegend: '',\n isCalloutVisible: false,\n target: null,\n calloutLegend: '',\n calloutTextColor: '',\n calloutYValue: '',\n ratio: null,\n descriptionMessage: '',\n calloutId: '',\n };\n }\n public render(): React.ReactNode {\n const {\n data,\n xAxisDateFormatString,\n xAxisNumberFormatString,\n yAxisDateFormatString,\n yAxisNumberFormatString,\n } = this.props;\n this._colorScale = this._getColorScale();\n const { dataSet, xAxisPoints, yAxisPoints } = this._createSet(\n data,\n xAxisDateFormatString,\n xAxisNumberFormatString,\n yAxisDateFormatString,\n yAxisNumberFormatString,\n );\n this._dataSet = dataSet;\n this._stringYAxisDataPoints = yAxisPoints;\n this._stringXAxisDataPoints = xAxisPoints;\n this._classNames = getClassNames(this.props.styles!, { theme: this.props.theme! });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isBeakVisible: false,\n gapSpace: 8,\n ...this.props.calloutProps,\n isCalloutVisible: this.state.isCalloutVisible,\n id: this.state.calloutId,\n YValue: this.state.calloutYValue,\n legend: this.state.calloutLegend,\n color: this.state.calloutTextColor,\n target: this.state.target,\n styles: this._classNames.subComponentStyles.calloutStyles,\n directionalHint: DirectionalHint.topAutoEdge,\n onDismiss: this._closeCallout,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false),\n preventDismissOnLostFocus: true,\n };\n const chartHoverProps: IModifiedCartesianChartProps['chartHoverProps'] = {\n ...(this.state.ratio && {\n ratio: this.state.ratio,\n }),\n descriptionMessage: this.state.descriptionMessage,\n };\n return (\n <CartesianChart\n {...this.props}\n points={data}\n chartType={ChartTypes.HeatMapChart}\n xAxisType={XAxisTypes.StringAxis}\n yAxisType={YAxisType.StringAxis}\n calloutProps={calloutProps}\n chartHoverProps={chartHoverProps}\n styles={this._classNames.subComponentStyles!.cartesianStyles}\n datasetForXAxisDomain={this._stringXAxisDataPoints}\n stringDatasetForYAxisDomain={this._stringYAxisDataPoints}\n xAxisTickCount={this._stringXAxisDataPoints.length}\n xAxistickSize={0}\n xAxisPadding={0.02}\n yAxisPadding={0.02}\n svgFocusZoneProps={{\n direction: FocusZoneDirection.bidirectional,\n }}\n legendBars={this._createLegendBars()}\n onChartMouseLeave={this._handleChartMouseLeave}\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._yAxisScale = props.yScale;\n return this._createRectangles();\n }}\n />\n );\n }\n\n private _getXandY = (): { x: string | Date | number; y: string | Date | number } => {\n let x: string | Date | number = '';\n let y: string | Date | number = '';\n this.props.data.forEach((item: IHeatMapChartData) => {\n if (item.data && item.data.length > 0) {\n x = item.data[0].x;\n y = item.data[0].y;\n return { x, y };\n }\n });\n return { x, y };\n };\n\n private _getOpacity = (legendTitle: string): string => {\n const opacity = this._legendHighlighted(legendTitle) || this._noLegendHighlighted() ? '1' : '0.1';\n return opacity;\n };\n\n private _rectRefCallback = (rectElement: SVGGElement, index: number | string, dataPointObject: FlattenData): void => {\n this._rectRefArray[index] = { data: dataPointObject, refElement: rectElement };\n };\n\n private _onRectFocus = (id: string, data: FlattenData): void => {\n this.setState({\n target: this._rectRefArray[id].refElement,\n /** Show the callout if highlighted rectangle is focused and Hide it if unhighlighted rectangle is focused */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === data.legend,\n calloutYValue: `${data.rectText}`,\n calloutTextColor: this._colorScale(data.value),\n calloutLegend: data.legend,\n ratio: data.ratio || null,\n descriptionMessage: data.descriptionMessage || '',\n calloutId: id,\n callOutAccessibilityData: data.callOutAccessibilityData,\n });\n };\n\n private _onRectMouseOver = (id: string, data: FlattenData, mouseEvent: React.MouseEvent<SVGGElement>): void => {\n mouseEvent.persist();\n if (this._calloutAnchorPoint !== data) {\n this._calloutAnchorPoint = data;\n this.setState({\n target: this._rectRefArray[id].refElement,\n /** Show the callout if highlighted rectangle is hovered and Hide it if unhighlighted rectangle is hovered */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === data.legend,\n calloutYValue: `${data.rectText}`,\n calloutTextColor: this._colorScale(data.value),\n calloutLegend: data.legend,\n ratio: data.ratio || null,\n descriptionMessage: data.descriptionMessage || '',\n calloutId: id,\n callOutAccessibilityData: data.callOutAccessibilityData,\n });\n }\n };\n\n private _onRectBlurOrMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This is the function which is responsible for\n * drawing the rectangle in the graph and also\n * attaching dom events to that rectangles\n */\n private _createRectangles = (): React.ReactNode => {\n const rectangles: JSX.Element[] = [];\n const yAxisDataPoints = this._stringYAxisDataPoints.slice().reverse();\n /**\n * yAxisDataPoint is noting but the DataPoint\n * which will be rendered on the y-axis\n */\n yAxisDataPoints.forEach((yAxisDataPoint: string, index1: number) => {\n /**\n * dataPointObject is an object where it contains information on single\n * data point such as x, y , value, rectText property of the rectangle\n */\n this._dataSet[yAxisDataPoint].forEach((dataPointObject: FlattenData, index2: number) => {\n const id = `${index1}${index2}`;\n const rectElement: JSX.Element = (\n <g\n key={id}\n role=\"img\"\n aria-label={this._getAriaLabel(dataPointObject)}\n data-is-focusable={true}\n fillOpacity={this._getOpacity(dataPointObject.legend)}\n transform={`translate(${this._xAxisScale(dataPointObject.x)}, ${this._yAxisScale(dataPointObject.y)})`}\n ref={(gElement: SVGGElement) => {\n this._rectRefCallback(gElement, id, dataPointObject);\n }}\n onFocus={this._onRectFocus.bind(this, id, dataPointObject)}\n onBlur={this._onRectBlurOrMouseOut}\n onMouseOver={this._onRectMouseOver.bind(this, id, dataPointObject)}\n onMouseOut={this._onRectBlurOrMouseOut}\n >\n <rect\n fill={this._colorScale(dataPointObject.value)}\n width={this._xAxisScale.bandwidth()}\n height={this._yAxisScale.bandwidth()}\n onClick={dataPointObject.onClick}\n />\n <text\n dominantBaseline={'middle'}\n textAnchor={'middle'}\n className={this._classNames.text}\n transform={`translate(${this._xAxisScale.bandwidth() / 2}, ${this._yAxisScale.bandwidth() / 2})`}\n >\n {convertToLocaleString(dataPointObject.rectText, this.props.culture)}\n </text>\n </g>\n );\n rectangles.push(rectElement);\n });\n });\n return rectangles;\n };\n /**\n * when the legend is hovered we need to highlight\n * all the rectangles which fall under that category\n * and un-highlight the rest of them\n * @param legendTitle\n */\n private _onLegendHover = (legendTitle: string): void => {\n this.setState({\n activeLegend: legendTitle,\n });\n };\n\n /**\n * when the mouse is out from the legend , we need\n * to show the graph in initial mode.\n */\n private _onLegendLeave = (): void => {\n this.setState({\n activeLegend: '',\n });\n };\n /**\n * @param legendTitle\n * when the legend is clicked we need to highlight\n * all the rectangles which fall under that category\n * and un highlight the rest of them\n */\n private _onLegendClick = (legendTitle: string): void => {\n /**\n * check if the legend is already selceted,\n * if yes, un-select the legend, else\n * set the selected legend state to legendTitle\n */\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n };\n private _createLegendBars = (): JSX.Element => {\n const { data, legendProps } = this.props;\n const legends: ILegend[] = [];\n data.forEach((item: IHeatMapChartData) => {\n const legend: ILegend = {\n title: item.legend,\n color: this._colorScale(item.value),\n action: () => {\n this._onLegendClick(item.legend);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(item.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n legends.push(legend);\n });\n return <Legends {...legendProps} legends={legends} />;\n };\n\n private _getColorScale = () => {\n const { domainValuesForColorScale, rangeValuesForColorScale } = this.props;\n return d3ScaleLinear()\n .domain(domainValuesForColorScale)\n .range((rangeValuesForColorScale as unknown) as number[]);\n };\n\n private _getXIndex = (value: string | Date | number): string => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n return `${(value as Date).getTime()}`;\n } else if (this._xAxisType === XAxisTypes.StringAxis) {\n return value as string;\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return `${value}`;\n } else {\n return '';\n }\n };\n private _getYIndex = (value: string | Date | number): string => {\n if (this._yAxisType === YAxisType.DateAxis) {\n return `${(value as Date).getTime()}`;\n } else if (this._yAxisType === YAxisType.StringAxis) {\n return value as string;\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n return `${value}`;\n } else {\n return '';\n }\n };\n\n /**\n * This will create a new data set based on the prop\n * @data\n * We will be using This data set to contsruct our rectangles\n * in the chart, we use this data set becuase, when we loop in this\n * data and build the heat map, it will support accessibility as\n * specified in the figma\n */\n\n private _createNewDataSet = (\n data: IHeatMapChartData[],\n xAxisDateFormatString: string | undefined,\n xAxisNumberFormatString: string | undefined,\n yAxisDateFormatString: string | undefined,\n yAxisNumberFormatString: string | undefined,\n ): DataSet => {\n /**\n * please do not destructure any of the props here,\n * instead send them as parameter to this functions so that\n * this functions get called whenever the prop changes\n */\n const flattenData: FlattenData[] = [];\n /**\n * below for each loop will store all the datapoints in the one array.\n * basically it will flatten the nestesd array (data prop) into single array\n * of object. where each object contains x, y, rectText , value and legend propety of single\n * data point.\n */\n data.forEach((item: IHeatMapChartData) => {\n item.data.forEach((point: IHeatMapChartDataPoint) => {\n flattenData.push({ ...point, legend: item.legend });\n });\n });\n const yPoints: RectanglesGraphData = {};\n const uniqueYPoints: { [key: string]: '1' } = {};\n const uniqueXPoints: { [key: string]: '1' } = {};\n flattenData.forEach((item: FlattenData) => {\n const posX = this._getXIndex(item.x);\n const posY = this._getYIndex(item.y);\n\n uniqueXPoints[posX] = '1';\n uniqueYPoints[posY] = '1';\n /** we will check if the property(posY) is already there in object, if Yes,\n * then we will append the item in the Array related to the pos, if not\n * then we will simply append the item in the new Array and\n * assign that array to the property (posY) in the Object\n * and finally we will get the array of Objects associated to each\n * property (which is nothing but y data point) and object in the\n * array are noting but x data points associated to the property y\n */\n if (yPoints[posY]) {\n yPoints[posY] = [...yPoints[posY], item];\n } else {\n yPoints[posY] = [item];\n }\n });\n /**\n * we will now sort(ascending) the array's of y data point based on the x value\n * sorting is important to achive the accessibility order of the\n * rectangles and then format the x and y datapoints respectively\n */\n Object.keys(yPoints).forEach((item: string) => {\n yPoints[item]\n .sort((a: IHeatMapChartDataPoint, b: IHeatMapChartDataPoint) => {\n if (this._xAxisType === XAxisTypes.StringAxis) {\n return (a.x as string).toLowerCase() > (b.x as string).toLowerCase() ? 1 : -1;\n } else if (this._xAxisType === XAxisTypes.DateAxis) {\n return (a.x as Date).getTime() - (b.x as Date).getTime();\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return +(a.x as string) > +(b.x as string) ? 1 : -1;\n } else {\n return a.x > b.x ? 1 : -1;\n }\n })\n .forEach((datapoint: IHeatMapChartDataPoint) => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n datapoint.x = this._getStringFormattedDate(datapoint.x as string, xAxisDateFormatString);\n }\n if (this._xAxisType === XAxisTypes.NumericAxis) {\n datapoint.x = this._getStringFormattedNumber(datapoint.x as string, xAxisNumberFormatString);\n }\n if (this._xAxisType === XAxisTypes.StringAxis) {\n datapoint.x = this._getFormattedLabelForXAxisDataPoint(datapoint.x as string);\n }\n if (this._yAxisType === YAxisType.DateAxis) {\n datapoint.y = this._getStringFormattedDate(datapoint.y as string, yAxisDateFormatString);\n }\n if (this._yAxisType === YAxisType.NumericAxis) {\n datapoint.y = this._getStringFormattedNumber(datapoint.y as string, yAxisNumberFormatString);\n }\n if (this._yAxisType === YAxisType.StringAxis) {\n datapoint.y = this._getFormattedLabelForYAxisDataPoint(datapoint.y as string);\n }\n });\n });\n /**\n * if y-axis data points are of type date or number or if we have string formatter,\n * then we need to change data points to their respective string\n * format, becuase in the private variable this._stringYAxisDatapoints, points will be stored in\n * string format. and in here `yPoint` are not so we need to change, so that\n * function `this._createRectangles` should work perfetcly while looping, and if we don't change\n * then `this._createRectangles` will fail while looping, causing the error\n * Cannot read property 'forEach' of undefined\n */\n\n Object.keys(yPoints).forEach((yPoint: string) => {\n if (this._yAxisType === YAxisType.DateAxis) {\n yPoints[this._getStringFormattedDate(yPoint, yAxisDateFormatString)] = yPoints[yPoint];\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n yPoints[`${this._getStringFormattedNumber(yPoint, yAxisNumberFormatString)}`] = yPoints[yPoint];\n } else {\n yPoints[this._getFormattedLabelForYAxisDataPoint(yPoint)] = yPoints[yPoint];\n }\n });\n /**\n * assigning new data set\n */\n const dataSet = yPoints;\n /**\n * These are the Y axis data points which will get rendered in the\n * Y axis in graph\n */\n const yAxisPoints = this._getYAxisDataPoints(uniqueYPoints);\n /**\n * These are the x axis data points which will get rendered in the\n * x axis in the graph\n */\n\n const xAxisPoints = this._getXAxisDataPoints(uniqueXPoints);\n return {\n dataSet,\n yAxisPoints,\n xAxisPoints,\n };\n };\n\n /**\n * This function will return the final sorted and formatted x-axis points\n * which will be rendered on the x-axis\n * @param points\n * @returns x-axis points\n */\n private _getXAxisDataPoints = (points: { [key: string]: '1' }): string[] => {\n let xAxisPoints: string[] = [];\n const unFormattedXAxisDataPoints = Object.keys(points).sort((a: string, b: string) => {\n if (this._xAxisType === XAxisTypes.DateAxis || this._xAxisType === XAxisTypes.NumericAxis) {\n return +a - +b;\n } else {\n return a.toLowerCase() > b.toLowerCase() ? 1 : -1;\n }\n });\n xAxisPoints = unFormattedXAxisDataPoints.map((xPoint: string) => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n return this._getStringFormattedDate(xPoint, this.props.xAxisDateFormatString);\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return this._getStringFormattedNumber(xPoint, this.props.xAxisNumberFormatString);\n } else {\n return this._getFormattedLabelForXAxisDataPoint(xPoint);\n }\n });\n\n return xAxisPoints;\n };\n /**\n * This function will return the final sorted and formatted y-axis points\n * which will be rendered on the y-axis\n * @param points\n * @returns yaxis points\n */\n private _getYAxisDataPoints = (points: { [key: string]: '1' }): string[] => {\n let yAxisPoints: string[] = [];\n const unFormattedYAxisDataPoints = Object.keys(points).sort((a: string, b: string) => {\n if (this._yAxisType === YAxisType.DateAxis || this._yAxisType === YAxisType.NumericAxis) {\n return +a - +b;\n } else {\n return a.toLowerCase() > b.toLowerCase() ? 1 : -1;\n }\n });\n yAxisPoints = unFormattedYAxisDataPoints.map((yPoint: string) => {\n if (this._yAxisType === YAxisType.DateAxis) {\n return this._getStringFormattedDate(yPoint, this.props.yAxisDateFormatString);\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n return this._getStringFormattedNumber(yPoint, this.props.yAxisNumberFormatString);\n } else {\n return this._getFormattedLabelForYAxisDataPoint(yPoint);\n }\n });\n\n return yAxisPoints;\n };\n\n private _getStringFormattedDate = (point: string, formatString?: string): string => {\n const date = new Date();\n date.setTime(+point);\n return d3TimeFormat.timeFormat(formatString || '%b/%d')(date);\n };\n\n private _getStringFormattedNumber = (point: string, formatString?: string): string => {\n return d3Format(formatString || '.2~s')(+point);\n };\n\n private _getFormattedLabelForXAxisDataPoint = (point: string): string => {\n const { xAxisStringFormatter } = this.props;\n return xAxisStringFormatter ? xAxisStringFormatter(point) : point;\n };\n\n private _getFormattedLabelForYAxisDataPoint = (point: string): string => {\n const { yAxisStringFormatter } = this.props;\n return yAxisStringFormatter ? yAxisStringFormatter(point) : point;\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\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 _getAriaLabel = (point: FlattenData): string => {\n const xValue = point.x;\n const yValue = point.y;\n const legend = point.legend;\n const zValue = point.ratio ? `${point.ratio[0]}/${point.ratio[1]}` : point.rectText || point.value;\n const description = point.descriptionMessage;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${xValue}, ${yValue}. ${legend}, ${zValue}.` + (description ? ` ${description}.` : '')\n );\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HeatMapChart.base.js","sourceRoot":"../src/","sources":["components/HeatMapChart/HeatMapChart.base.tsx"],"names":[],"mappings":";;;;AAAA,qCAOqB;AACrB,qCAAwD;AACxD,2DAAoF;AACpF,qDAA2D;AAC3D,uDAA8D;AAE9D,6BAA+B;AAE/B,0CAAoD;AACpD,uDAOmC;AAEnC,uCAA+C;AAC/C,6CAA+C;AA+D/C,IAAM,aAAa,GAAG,8BAAkB,EAAgD,CAAC;AACzF;IAAsC,4CAAuD;IA0B3F,0BAAmB,KAAyB;QAA5C,YACE,kBAAM,KAAK,CAAC,SAgCb;QAzCD;;;WAGG;QACK,mBAAa,GAAgC,EAAE,CAAC;QA2GhD,eAAS,GAAG;YAClB,IAAI,CAAC,GAA2B,EAAE,CAAC;YACnC,IAAI,CAAC,GAA2B,EAAE,CAAC;YACnC,KAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,IAAuB;gBAC9C,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;oBACrC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnB,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnB,OAAO,EAAE,CAAC,GAAA,EAAE,CAAC,GAAA,EAAE,CAAC;iBACjB;YACH,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,CAAC,GAAA,EAAE,CAAC,GAAA,EAAE,CAAC;QAClB,CAAC,CAAC;QAEM,iBAAW,GAAG,UAAC,WAAmB;YACxC,IAAM,OAAO,GAAG,KAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,IAAI,KAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC;YAClG,OAAO,OAAO,CAAC;QACjB,CAAC,CAAC;QAEM,sBAAgB,GAAG,UAAC,WAAwB,EAAE,KAAsB,EAAE,eAA4B;YACxG,KAAI,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;QACjF,CAAC,CAAC;QAEM,kBAAY,GAAG,UAAC,EAAU,EAAE,IAAiB;YACnD,KAAI,CAAC,QAAQ,CAAC;gBACZ,MAAM,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,UAAU;gBACzC,6GAA6G;gBAC7G,gBAAgB,EAAE,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM;gBAC/F,aAAa,EAAE,KAAG,IAAI,CAAC,QAAU;gBACjC,gBAAgB,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC9C,aAAa,EAAE,IAAI,CAAC,MAAM;gBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;gBACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE;gBACjD,SAAS,EAAE,EAAE;gBACb,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;aACxD,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,sBAAgB,GAAG,UAAC,EAAU,EAAE,IAAiB,EAAE,UAAyC;YAClG,UAAU,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,KAAI,CAAC,mBAAmB,KAAK,IAAI,EAAE;gBACrC,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;gBAChC,KAAI,CAAC,QAAQ,CAAC;oBACZ,MAAM,EAAE,KAAI,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,UAAU;oBACzC,6GAA6G;oBAC7G,gBAAgB,EAAE,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,IAAI,CAAC,MAAM;oBAC/F,aAAa,EAAE,KAAG,IAAI,CAAC,QAAU;oBACjC,gBAAgB,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;oBAC9C,aAAa,EAAE,IAAI,CAAC,MAAM;oBAC1B,KAAK,EAAE,IAAI,CAAC,KAAK,IAAI,IAAI;oBACzB,kBAAkB,EAAE,IAAI,CAAC,kBAAkB,IAAI,EAAE;oBACjD,SAAS,EAAE,EAAE;oBACb,wBAAwB,EAAE,IAAI,CAAC,wBAAwB;iBACxD,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,2BAAqB,GAAG;YAC9B,IAAI;QACN,CAAC,CAAC;QAEM,4BAAsB,GAAG;YAC/B,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,KAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;;;WAIG;QACK,uBAAiB,GAAG;YAC1B,IAAM,UAAU,GAAkB,EAAE,CAAC;YACrC,IAAM,eAAe,GAAG,KAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,CAAC;YACtE;;;eAGG;YACH,eAAe,CAAC,OAAO,CAAC,UAAC,cAAsB,EAAE,MAAc;gBAC7D;;;mBAGG;gBACH,KAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,UAAC,eAA4B,EAAE,MAAc;oBACjF,IAAM,EAAE,GAAG,KAAG,MAAM,GAAG,MAAQ,CAAC;oBAChC,IAAM,WAAW,GAAgB,CAC/B,2BACE,GAAG,EAAE,EAAE,EACP,IAAI,EAAC,KAAK,gBACE,KAAI,CAAC,aAAa,CAAC,eAAe,CAAC,uBAC5B,IAAI,EACvB,WAAW,EAAE,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,MAAM,CAAC,EACrD,SAAS,EAAE,eAAa,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,UAAK,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC,MAAG,EACtG,GAAG,EAAE,UAAC,QAAqB;4BACzB,KAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,EAAE,EAAE,eAAe,CAAC,CAAC;wBACvD,CAAC,EACD,OAAO,EAAE,KAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,eAAe,CAAC,EAC1D,MAAM,EAAE,KAAI,CAAC,qBAAqB,EAClC,WAAW,EAAE,KAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAI,EAAE,EAAE,EAAE,eAAe,CAAC,EAClE,UAAU,EAAE,KAAI,CAAC,qBAAqB;wBAEtC,8BACE,IAAI,EAAE,KAAI,CAAC,WAAW,CAAC,eAAe,CAAC,KAAK,CAAC,EAC7C,KAAK,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EACnC,MAAM,EAAE,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,EACpC,OAAO,EAAE,eAAe,CAAC,OAAO,GAChC;wBACF,8BACE,gBAAgB,EAAE,QAAQ,EAC1B,UAAU,EAAE,QAAQ,EACpB,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,EAChC,SAAS,EAAE,eAAa,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,UAAK,KAAI,CAAC,WAAW,CAAC,SAAS,EAAE,GAAG,CAAC,MAAG,IAE/F,iCAAqB,CAAC,eAAe,CAAC,QAAQ,EAAE,KAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAC/D,CACL,CACL,CAAC;oBACF,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;gBAC/B,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,OAAO,UAAU,CAAC;QACpB,CAAC,CAAC;QACF;;;;;WAKG;QACK,oBAAc,GAAG,UAAC,WAAmB;YAC3C,KAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,WAAW;aAC1B,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;;WAGG;QACK,oBAAc,GAAG;YACvB,KAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,EAAE;aACjB,CAAC,CAAC;QACL,CAAC,CAAC;QACF;;;;;WAKG;QACK,oBAAc,GAAG,UAAC,WAAmB;YAC3C;;;;eAIG;YACH,IAAI,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,WAAW,EAAE;gBAC7C,KAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,EAAE;iBACnB,CAAC,CAAC;aACJ;iBAAM;gBACL,KAAI,CAAC,QAAQ,CAAC;oBACZ,cAAc,EAAE,WAAW;iBAC5B,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QACM,uBAAiB,GAAG;YACpB,IAAA,KAAwB,KAAI,CAAC,KAAK,EAAhC,IAAI,UAAA,EAAE,WAAW,iBAAe,CAAC;YACzC,IAAM,OAAO,GAAc,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,UAAC,IAAuB;gBACnC,IAAM,MAAM,GAAY;oBACtB,KAAK,EAAE,IAAI,CAAC,MAAM;oBAClB,KAAK,EAAE,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;oBACnC,MAAM,EAAE;wBACN,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnC,CAAC;oBACD,WAAW,EAAE;wBACX,KAAI,CAAC,sBAAsB,EAAE,CAAC;wBAC9B,KAAI,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACnC,CAAC;oBACD,gBAAgB,EAAE;wBAChB,KAAI,CAAC,cAAc,EAAE,CAAC;oBACxB,CAAC;iBACF,CAAC;gBACF,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,CAAC,CAAC,CAAC;YACH,OAAO,oBAAC,eAAO,uBAAK,WAAW,IAAE,OAAO,EAAE,OAAO,IAAI,CAAC;QACxD,CAAC,CAAC;QAEM,oBAAc,GAAG;YACjB,IAAA,KAA0D,KAAI,CAAC,KAAK,EAAlE,yBAAyB,+BAAA,EAAE,wBAAwB,8BAAe,CAAC;YAC3E,OAAO,sBAAa,EAAE;iBACnB,MAAM,CAAC,yBAAyB,CAAC;iBACjC,KAAK,CAAC,wBAA+C,CAAC,CAAC;QAC5D,CAAC,CAAC;QAEM,gBAAU,GAAG,UAAC,KAA6B;YACjD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE;gBAC3C,OAAO,KAAI,KAAc,CAAC,OAAO,EAAI,CAAC;aACvC;iBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,UAAU,EAAE;gBACpD,OAAO,KAAe,CAAC;aACxB;iBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE;gBACrD,OAAO,KAAG,KAAO,CAAC;aACnB;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;QACH,CAAC,CAAC;QACM,gBAAU,GAAG,UAAC,KAA6B;YACjD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE;gBAC1C,OAAO,KAAI,KAAc,CAAC,OAAO,EAAI,CAAC;aACvC;iBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,UAAU,EAAE;gBACnD,OAAO,KAAe,CAAC;aACxB;iBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE;gBACpD,OAAO,KAAG,KAAO,CAAC;aACnB;iBAAM;gBACL,OAAO,EAAE,CAAC;aACX;QACH,CAAC,CAAC;QAEF;;;;;;;WAOG;QAEK,uBAAiB,GAAG,UAC1B,IAAyB,EACzB,qBAAyC,EACzC,uBAA2C,EAC3C,qBAAyC,EACzC,uBAA2C;YAE3C;;;;eAIG;YACH,IAAM,WAAW,GAAkB,EAAE,CAAC;YACtC;;;;;eAKG;YACH,IAAI,CAAC,OAAO,CAAC,UAAC,IAAuB;gBACnC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,KAA6B;oBAC9C,WAAW,CAAC,IAAI,uCAAM,KAAK,KAAE,MAAM,EAAE,IAAI,CAAC,MAAM,IAAG,CAAC;gBACtD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,IAAM,OAAO,GAAwB,EAAE,CAAC;YACxC,IAAM,aAAa,GAA2B,EAAE,CAAC;YACjD,IAAM,aAAa,GAA2B,EAAE,CAAC;YACjD,WAAW,CAAC,OAAO,CAAC,UAAC,IAAiB;gBACpC,IAAM,IAAI,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrC,IAAM,IAAI,GAAG,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAErC,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBAC1B,aAAa,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC;gBAC1B;;;;;;;mBAOG;gBACH,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;oBACjB,OAAO,CAAC,IAAI,CAAC,mDAAO,OAAO,CAAC,IAAI,CAAC,IAAE,IAAI,EAAC,CAAC;iBAC1C;qBAAM;oBACL,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBACxB;YACH,CAAC,CAAC,CAAC;YACH;;;;eAIG;YACH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,IAAY;gBACxC,OAAO,CAAC,IAAI,CAAC;qBACV,IAAI,CAAC,UAAC,CAAyB,EAAE,CAAyB;oBACzD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,UAAU,EAAE;wBAC7C,OAAQ,CAAC,CAAC,CAAY,CAAC,WAAW,EAAE,GAAI,CAAC,CAAC,CAAY,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC/E;yBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE;wBAClD,OAAQ,CAAC,CAAC,CAAU,CAAC,OAAO,EAAE,GAAI,CAAC,CAAC,CAAU,CAAC,OAAO,EAAE,CAAC;qBAC1D;yBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE;wBACrD,OAAO,CAAE,CAAC,CAAC,CAAY,GAAG,CAAE,CAAC,CAAC,CAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBACrD;yBAAM;wBACL,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;qBAC3B;gBACH,CAAC,CAAC;qBACD,OAAO,CAAC,UAAC,SAAiC;oBACzC,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE;wBAC3C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAW,EAAE,qBAAqB,CAAC,CAAC;qBAC1F;oBACD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE;wBAC9C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAW,EAAE,uBAAuB,CAAC,CAAC;qBAC9F;oBACD,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,UAAU,EAAE;wBAC7C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,CAAW,CAAC,CAAC;qBAC/E;oBACD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE;wBAC1C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAW,EAAE,qBAAqB,CAAC,CAAC;qBAC1F;oBACD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE;wBAC7C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,CAAW,EAAE,uBAAuB,CAAC,CAAC;qBAC9F;oBACD,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,UAAU,EAAE;wBAC5C,SAAS,CAAC,CAAC,GAAG,KAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,CAAW,CAAC,CAAC;qBAC/E;gBACH,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;YACH;;;;;;;;eAQG;YAEH,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAC,MAAc;gBAC1C,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE;oBAC1C,OAAO,CAAC,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;iBACxF;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE;oBACpD,OAAO,CAAC,KAAG,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,CAAG,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;iBACjG;qBAAM;oBACL,OAAO,CAAC,KAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;iBAC7E;YACH,CAAC,CAAC,CAAC;YACH;;eAEG;YACH,IAAM,OAAO,GAAG,OAAO,CAAC;YACxB;;;eAGG;YACH,IAAM,WAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAC5D;;;eAGG;YAEH,IAAM,WAAW,GAAG,KAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;YAC5D,OAAO;gBACL,OAAO,SAAA;gBACP,WAAW,aAAA;gBACX,WAAW,aAAA;aACZ,CAAC;QACJ,CAAC,CAAC;QAEF;;;;;WAKG;QACK,yBAAmB,GAAG,UAAC,MAA8B;YAC3D,IAAI,WAAW,GAAa,EAAE,CAAC;YAC/B,IAAM,0BAA0B,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAS,EAAE,CAAS;gBAC/E,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE;oBACzF,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChB;qBAAM;oBACL,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnD;YACH,CAAC,CAAC,CAAC;YACH,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,UAAC,MAAc;gBAC1D,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,QAAQ,EAAE;oBAC3C,OAAO,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;iBAC/E;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,sBAAU,CAAC,WAAW,EAAE;oBACrD,OAAO,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;iBACnF;qBAAM;oBACL,OAAO,KAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC;iBACzD;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QACF;;;;;WAKG;QACK,yBAAmB,GAAG,UAAC,MAA8B;YAC3D,IAAI,WAAW,GAAa,EAAE,CAAC;YAC/B,IAAM,0BAA0B,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,UAAC,CAAS,EAAE,CAAS;gBAC/E,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE;oBACvF,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;iBAChB;qBAAM;oBACL,OAAO,CAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACnD;YACH,CAAC,CAAC,CAAC;YACH,WAAW,GAAG,0BAA0B,CAAC,GAAG,CAAC,UAAC,MAAc;gBAC1D,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,QAAQ,EAAE;oBAC1C,OAAO,KAAI,CAAC,uBAAuB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;iBAC/E;qBAAM,IAAI,KAAI,CAAC,UAAU,KAAK,qBAAS,CAAC,WAAW,EAAE;oBACpD,OAAO,KAAI,CAAC,yBAAyB,CAAC,MAAM,EAAE,KAAI,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC;iBACnF;qBAAM;oBACL,OAAO,KAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,CAAC;iBACzD;YACH,CAAC,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC;QACrB,CAAC,CAAC;QAEM,6BAAuB,GAAG,UAAC,KAAa,EAAE,YAAqB;YACrE,IAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YACxB,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,YAAY,CAAC,UAAU,CAAC,YAAY,IAAI,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;QAChE,CAAC,CAAC;QAEM,+BAAyB,GAAG,UAAC,KAAa,EAAE,YAAqB;YACvE,OAAO,kBAAQ,CAAC,YAAY,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAClD,CAAC,CAAC;QAEM,yCAAmC,GAAG,UAAC,KAAa;YAClD,IAAA,oBAAoB,GAAK,KAAI,CAAC,KAAK,qBAAf,CAAgB;YAC5C,OAAO,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,CAAC,CAAC;QAEM,yCAAmC,GAAG,UAAC,KAAa;YAClD,IAAA,oBAAoB,GAAK,KAAI,CAAC,KAAK,qBAAf,CAAgB;YAC5C,OAAO,oBAAoB,CAAC,CAAC,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QACpE,CAAC,CAAC;QAEM,mBAAa,GAAG;YACtB,KAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QAEF;;;;;WAKG;QACK,wBAAkB,GAAG,UAAC,WAAmB;YAC/C,OAAO,CACL,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,WAAW;gBACzC,CAAC,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,WAAW,CAAC,CAC9E,CAAC;QACJ,CAAC,CAAC;QAEF;;WAEG;QACK,0BAAoB,GAAG;YAC7B,OAAO,KAAI,CAAC,KAAK,CAAC,cAAc,KAAK,EAAE,IAAI,KAAI,CAAC,KAAK,CAAC,YAAY,KAAK,EAAE,CAAC;QAC5E,CAAC,CAAC;QAEM,mBAAa,GAAG,UAAC,KAAkB;;YACzC,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACvB,IAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC;YACvB,IAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC;YAC5B,IAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAI,KAAK,CAAC,KAAK,CAAC,CAAC,CAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC;YACnG,IAAM,WAAW,GAAG,KAAK,CAAC,kBAAkB,CAAC;YAC7C,OAAO,CACL,CAAA,MAAA,KAAK,CAAC,wBAAwB,0CAAE,SAAS;gBACtC,MAAM,UAAK,MAAM,UAAK,MAAM,UAAK,MAAM,MAAG,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC,MAAI,WAAW,MAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CACxF,CAAC;QACJ,CAAC,CAAC;QAvjBM,IAAA,KAAW,KAAI,CAAC,SAAS,EAAE,EAAzB,CAAC,OAAA,EAAE,CAAC,OAAqB,CAAC;QAClC,KAAI,CAAC,UAAU,GAAG,yBAAa,CAAC,CAAC,EAAE,IAAI,CAAe,CAAC;QACvD,KAAI,CAAC,UAAU,GAAG,yBAAa,CAAC,CAAC,EAAE,KAAK,CAAc,CAAC;QACvD;;;;;;WAMG;QACH,KAAI,CAAC,UAAU,GAAG,2BAAe,CAC/B,UACE,IAAyB,EACzB,KAAyB,EACzB,IAAwB,EACxB,KAAyB,EACzB,IAAwB,IACZ,OAAA,KAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAtD,CAAsD,CACrE,CAAC;QACF,KAAI,CAAC,KAAK,GAAG;YACX,cAAc,EAAE,EAAE;YAClB,YAAY,EAAE,EAAE;YAChB,gBAAgB,EAAE,KAAK;YACvB,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,EAAE;YACjB,gBAAgB,EAAE,EAAE;YACpB,aAAa,EAAE,EAAE;YACjB,KAAK,EAAE,IAAI;YACX,kBAAkB,EAAE,EAAE;YACtB,SAAS,EAAE,EAAE;SACd,CAAC;;IACJ,CAAC;IACM,iCAAM,GAAb;QAAA,iBAmEC;QAlEO,IAAA,KACJ,IAAI,CAAC,KAAK,EADJ,IAAI,UAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAAA,EAAE,qBAAqB,2BAAA,EAAE,uBAAuB,6BAChG,CAAC;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACnC,IAAA,KAAwC,IAAI,CAAC,UAAU,CAC3D,IAAI,EACJ,qBAAqB,EACrB,uBAAuB,EACvB,qBAAqB,EACrB,uBAAuB,CACxB,EANO,OAAO,aAAA,EAAE,WAAW,iBAAA,EAAE,WAAW,iBAMxC,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC;QAC1C,IAAI,CAAC,sBAAsB,GAAG,WAAW,CAAC;QAC1C,IAAI,CAAC,WAAW,GAAG,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAM,EAAE,CAAC,CAAC;QACnF,IAAM,YAAY,yEAChB,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,CAAC,IACR,IAAI,CAAC,KAAK,CAAC,YAAY,KAC1B,gBAAgB,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAC7C,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EACxB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAChC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,EAChC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAClC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EACzB,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,aAAa,EACzD,eAAe,EAAE,yBAAe,CAAC,WAAW,EAC5C,SAAS,EAAE,IAAI,CAAC,aAAa,KAC1B,mCAAuB,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,MAAM,EAAE,KAAK,CAAC,KAC9E,yBAAyB,EAAE,IAAI,GAChC,CAAC;QACF,IAAM,eAAe,yCAChB,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI;YACtB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;SACxB,CAAC,KACF,kBAAkB,EAAE,IAAI,CAAC,KAAK,CAAC,kBAAkB,GAClD,CAAC;QACF,OAAO,CACL,oBAAC,sBAAc,uBACT,IAAI,CAAC,KAAK,IACd,MAAM,EAAE,IAAI,EACZ,SAAS,EAAE,sBAAU,CAAC,YAAY,EAClC,SAAS,EAAE,sBAAU,CAAC,UAAU,EAChC,SAAS,EAAE,qBAAS,CAAC,UAAU,EAC/B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,kBAAmB,CAAC,eAAe,EAC5D,qBAAqB,EAAE,IAAI,CAAC,sBAAsB,EAClD,2BAA2B,EAAE,IAAI,CAAC,sBAAsB,EACxD,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,MAAM,EAClD,aAAa,EAAE,CAAC,EAChB,YAAY,EAAE,IAAI,EAClB,YAAY,EAAE,IAAI,EAClB,iBAAiB,EAAE;gBACjB,SAAS,EAAE,gCAAkB,CAAC,aAAa;aAC5C,EACD,UAAU,EAAE,IAAI,CAAC,iBAAiB,EAAE,EACpC,iBAAiB,EAAE,IAAI,CAAC,sBAAsB;YAC9C,sCAAsC;YACtC,kDAAkD;YAClD,QAAQ,EAAE,UAAC,KAAkB;gBAC3B,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;gBAChC,KAAI,CAAC,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;gBAChC,OAAO,KAAI,CAAC,iBAAiB,EAAE,CAAC;YAClC,CAAC,IACD,CACH,CAAC;IACJ,CAAC;IAqdH,uBAAC;AAAD,CAAC,AAplBD,CAAsC,KAAK,CAAC,SAAS,GAolBpD;AAplBY,4CAAgB","sourcesContent":["import {\n IAccessibilityProps,\n CartesianChart,\n IChildProps,\n IModifiedCartesianChartProps,\n IHeatMapChartData,\n IHeatMapChartDataPoint,\n} from '../../index';\nimport { scaleLinear as d3ScaleLinear } from 'd3-scale';\nimport { classNamesFunction, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport * as React from 'react';\nimport { IHeatMapChartProps, IHeatMapChartStyleProps, IHeatMapChartStyles } from './HeatMapChart.types';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n ChartTypes,\n convertToLocaleString,\n getAccessibleDataObject,\n XAxisTypes,\n YAxisType,\n getTypeOfAxis,\n} from '../../utilities/utilities';\nimport { Target } from '@fluentui/react';\nimport { format as d3Format } from 'd3-format';\nimport * as d3TimeFormat from 'd3-time-format';\n\ntype DataSet = {\n dataSet: RectanglesGraphData;\n yAxisPoints: string[];\n xAxisPoints: string[];\n};\ntype FlattenData = IHeatMapChartDataPoint & {\n legend: string;\n};\ninterface IRectRef {\n data: FlattenData;\n refElement: SVGGElement;\n}\ntype RectanglesGraphData = { [key: string]: FlattenData[] };\nexport interface IHeatMapChartState {\n /**\n * contains the selected legend string\n */\n selectedLegend: string;\n /**\n * contains the hovered legend string\n */\n activeLegend: string;\n /**\n * determines wethere to show or hide the callout\n * @default false\n */\n isCalloutVisible: boolean;\n /**\n * y value to be shown in callout\n */\n calloutYValue: string;\n /**\n * legend title to be shown in callout\n */\n calloutLegend: string;\n /**\n * color of the text in the callout\n */\n calloutTextColor: string;\n /**\n * The target that the Callout should try to position itself based on\n */\n target: Target;\n /**\n * ratio to show in the callout\n */\n ratio: [number, number] | null;\n\n /**\n * description message to show in the callout\n */\n descriptionMessage: string;\n /**\n * id to give to callout for accesiblity purpose\n */\n calloutId: string;\n /**\n * Accessibility data for callout\n */\n callOutAccessibilityData?: IAccessibilityProps;\n}\nconst getClassNames = classNamesFunction<IHeatMapChartStyleProps, IHeatMapChartStyles>();\nexport class HeatMapChartBase extends React.Component<IHeatMapChartProps, IHeatMapChartState> {\n private _classNames: IProcessedStyleSet<IHeatMapChartStyles>;\n private _stringXAxisDataPoints: string[];\n private _stringYAxisDataPoints: string[];\n private _createSet: (\n data: IHeatMapChartData[],\n xDate: string | undefined,\n xNum: string | undefined,\n yDate: string | undefined,\n yNum: string | undefined,\n ) => DataSet;\n private _dataSet: RectanglesGraphData;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _colorScale: 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 _yAxisScale: any;\n /**\n * This array contains ref for all the rectangles\n * drawn inside the chard\n */\n private _rectRefArray: { [key: string]: IRectRef } = {};\n private _xAxisType: XAxisTypes;\n private _yAxisType: YAxisType;\n private _calloutAnchorPoint: FlattenData | null;\n public constructor(props: IHeatMapChartProps) {\n super(props);\n const { x, y } = this._getXandY();\n this._xAxisType = getTypeOfAxis(x, true) as XAxisTypes;\n this._yAxisType = getTypeOfAxis(y, false) as YAxisType;\n /**\n * below funciton creates a new data set from the prop\n * @data and also finds all the unique x-axis datapoints\n * and y-axis datapoints(which will render in the axis in graph)\n * we store this in a memoized function, because we want to calulate\n * this set whenever props changes.\n */\n this._createSet = memoizeFunction(\n (\n data: IHeatMapChartData[],\n xDate: string | undefined,\n xNum: string | undefined,\n yDate: string | undefined,\n yNum: string | undefined,\n ): DataSet => this._createNewDataSet(data, xDate, xNum, yDate, yNum),\n );\n this.state = {\n selectedLegend: '',\n activeLegend: '',\n isCalloutVisible: false,\n target: null,\n calloutLegend: '',\n calloutTextColor: '',\n calloutYValue: '',\n ratio: null,\n descriptionMessage: '',\n calloutId: '',\n };\n }\n public render(): React.ReactNode {\n const { data, xAxisDateFormatString, xAxisNumberFormatString, yAxisDateFormatString, yAxisNumberFormatString } =\n this.props;\n this._colorScale = this._getColorScale();\n const { dataSet, xAxisPoints, yAxisPoints } = this._createSet(\n data,\n xAxisDateFormatString,\n xAxisNumberFormatString,\n yAxisDateFormatString,\n yAxisNumberFormatString,\n );\n this._dataSet = dataSet;\n this._stringYAxisDataPoints = yAxisPoints;\n this._stringXAxisDataPoints = xAxisPoints;\n this._classNames = getClassNames(this.props.styles!, { theme: this.props.theme! });\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isBeakVisible: false,\n gapSpace: 8,\n ...this.props.calloutProps,\n isCalloutVisible: this.state.isCalloutVisible,\n id: this.state.calloutId,\n YValue: this.state.calloutYValue,\n legend: this.state.calloutLegend,\n color: this.state.calloutTextColor,\n target: this.state.target,\n styles: this._classNames.subComponentStyles.calloutStyles,\n directionalHint: DirectionalHint.topAutoEdge,\n onDismiss: this._closeCallout,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false),\n preventDismissOnLostFocus: true,\n };\n const chartHoverProps: IModifiedCartesianChartProps['chartHoverProps'] = {\n ...(this.state.ratio && {\n ratio: this.state.ratio,\n }),\n descriptionMessage: this.state.descriptionMessage,\n };\n return (\n <CartesianChart\n {...this.props}\n points={data}\n chartType={ChartTypes.HeatMapChart}\n xAxisType={XAxisTypes.StringAxis}\n yAxisType={YAxisType.StringAxis}\n calloutProps={calloutProps}\n chartHoverProps={chartHoverProps}\n styles={this._classNames.subComponentStyles!.cartesianStyles}\n datasetForXAxisDomain={this._stringXAxisDataPoints}\n stringDatasetForYAxisDomain={this._stringYAxisDataPoints}\n xAxisTickCount={this._stringXAxisDataPoints.length}\n xAxistickSize={0}\n xAxisPadding={0.02}\n yAxisPadding={0.02}\n svgFocusZoneProps={{\n direction: FocusZoneDirection.bidirectional,\n }}\n legendBars={this._createLegendBars()}\n onChartMouseLeave={this._handleChartMouseLeave}\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._yAxisScale = props.yScale;\n return this._createRectangles();\n }}\n />\n );\n }\n\n private _getXandY = (): { x: string | Date | number; y: string | Date | number } => {\n let x: string | Date | number = '';\n let y: string | Date | number = '';\n this.props.data.forEach((item: IHeatMapChartData) => {\n if (item.data && item.data.length > 0) {\n x = item.data[0].x;\n y = item.data[0].y;\n return { x, y };\n }\n });\n return { x, y };\n };\n\n private _getOpacity = (legendTitle: string): string => {\n const opacity = this._legendHighlighted(legendTitle) || this._noLegendHighlighted() ? '1' : '0.1';\n return opacity;\n };\n\n private _rectRefCallback = (rectElement: SVGGElement, index: number | string, dataPointObject: FlattenData): void => {\n this._rectRefArray[index] = { data: dataPointObject, refElement: rectElement };\n };\n\n private _onRectFocus = (id: string, data: FlattenData): void => {\n this.setState({\n target: this._rectRefArray[id].refElement,\n /** Show the callout if highlighted rectangle is focused and Hide it if unhighlighted rectangle is focused */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === data.legend,\n calloutYValue: `${data.rectText}`,\n calloutTextColor: this._colorScale(data.value),\n calloutLegend: data.legend,\n ratio: data.ratio || null,\n descriptionMessage: data.descriptionMessage || '',\n calloutId: id,\n callOutAccessibilityData: data.callOutAccessibilityData,\n });\n };\n\n private _onRectMouseOver = (id: string, data: FlattenData, mouseEvent: React.MouseEvent<SVGGElement>): void => {\n mouseEvent.persist();\n if (this._calloutAnchorPoint !== data) {\n this._calloutAnchorPoint = data;\n this.setState({\n target: this._rectRefArray[id].refElement,\n /** Show the callout if highlighted rectangle is hovered and Hide it if unhighlighted rectangle is hovered */\n isCalloutVisible: this.state.selectedLegend === '' || this.state.selectedLegend === data.legend,\n calloutYValue: `${data.rectText}`,\n calloutTextColor: this._colorScale(data.value),\n calloutLegend: data.legend,\n ratio: data.ratio || null,\n descriptionMessage: data.descriptionMessage || '',\n calloutId: id,\n callOutAccessibilityData: data.callOutAccessibilityData,\n });\n }\n };\n\n private _onRectBlurOrMouseOut = (): void => {\n /**/\n };\n\n private _handleChartMouseLeave = (): void => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This is the function which is responsible for\n * drawing the rectangle in the graph and also\n * attaching dom events to that rectangles\n */\n private _createRectangles = (): React.ReactNode => {\n const rectangles: JSX.Element[] = [];\n const yAxisDataPoints = this._stringYAxisDataPoints.slice().reverse();\n /**\n * yAxisDataPoint is noting but the DataPoint\n * which will be rendered on the y-axis\n */\n yAxisDataPoints.forEach((yAxisDataPoint: string, index1: number) => {\n /**\n * dataPointObject is an object where it contains information on single\n * data point such as x, y , value, rectText property of the rectangle\n */\n this._dataSet[yAxisDataPoint].forEach((dataPointObject: FlattenData, index2: number) => {\n const id = `${index1}${index2}`;\n const rectElement: JSX.Element = (\n <g\n key={id}\n role=\"img\"\n aria-label={this._getAriaLabel(dataPointObject)}\n data-is-focusable={true}\n fillOpacity={this._getOpacity(dataPointObject.legend)}\n transform={`translate(${this._xAxisScale(dataPointObject.x)}, ${this._yAxisScale(dataPointObject.y)})`}\n ref={(gElement: SVGGElement) => {\n this._rectRefCallback(gElement, id, dataPointObject);\n }}\n onFocus={this._onRectFocus.bind(this, id, dataPointObject)}\n onBlur={this._onRectBlurOrMouseOut}\n onMouseOver={this._onRectMouseOver.bind(this, id, dataPointObject)}\n onMouseOut={this._onRectBlurOrMouseOut}\n >\n <rect\n fill={this._colorScale(dataPointObject.value)}\n width={this._xAxisScale.bandwidth()}\n height={this._yAxisScale.bandwidth()}\n onClick={dataPointObject.onClick}\n />\n <text\n dominantBaseline={'middle'}\n textAnchor={'middle'}\n className={this._classNames.text}\n transform={`translate(${this._xAxisScale.bandwidth() / 2}, ${this._yAxisScale.bandwidth() / 2})`}\n >\n {convertToLocaleString(dataPointObject.rectText, this.props.culture)}\n </text>\n </g>\n );\n rectangles.push(rectElement);\n });\n });\n return rectangles;\n };\n /**\n * when the legend is hovered we need to highlight\n * all the rectangles which fall under that category\n * and un-highlight the rest of them\n * @param legendTitle\n */\n private _onLegendHover = (legendTitle: string): void => {\n this.setState({\n activeLegend: legendTitle,\n });\n };\n\n /**\n * when the mouse is out from the legend , we need\n * to show the graph in initial mode.\n */\n private _onLegendLeave = (): void => {\n this.setState({\n activeLegend: '',\n });\n };\n /**\n * @param legendTitle\n * when the legend is clicked we need to highlight\n * all the rectangles which fall under that category\n * and un highlight the rest of them\n */\n private _onLegendClick = (legendTitle: string): void => {\n /**\n * check if the legend is already selceted,\n * if yes, un-select the legend, else\n * set the selected legend state to legendTitle\n */\n if (this.state.selectedLegend === legendTitle) {\n this.setState({\n selectedLegend: '',\n });\n } else {\n this.setState({\n selectedLegend: legendTitle,\n });\n }\n };\n private _createLegendBars = (): JSX.Element => {\n const { data, legendProps } = this.props;\n const legends: ILegend[] = [];\n data.forEach((item: IHeatMapChartData) => {\n const legend: ILegend = {\n title: item.legend,\n color: this._colorScale(item.value),\n action: () => {\n this._onLegendClick(item.legend);\n },\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(item.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n legends.push(legend);\n });\n return <Legends {...legendProps} legends={legends} />;\n };\n\n private _getColorScale = () => {\n const { domainValuesForColorScale, rangeValuesForColorScale } = this.props;\n return d3ScaleLinear()\n .domain(domainValuesForColorScale)\n .range(rangeValuesForColorScale as unknown as number[]);\n };\n\n private _getXIndex = (value: string | Date | number): string => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n return `${(value as Date).getTime()}`;\n } else if (this._xAxisType === XAxisTypes.StringAxis) {\n return value as string;\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return `${value}`;\n } else {\n return '';\n }\n };\n private _getYIndex = (value: string | Date | number): string => {\n if (this._yAxisType === YAxisType.DateAxis) {\n return `${(value as Date).getTime()}`;\n } else if (this._yAxisType === YAxisType.StringAxis) {\n return value as string;\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n return `${value}`;\n } else {\n return '';\n }\n };\n\n /**\n * This will create a new data set based on the prop\n * @data\n * We will be using This data set to contsruct our rectangles\n * in the chart, we use this data set becuase, when we loop in this\n * data and build the heat map, it will support accessibility as\n * specified in the figma\n */\n\n private _createNewDataSet = (\n data: IHeatMapChartData[],\n xAxisDateFormatString: string | undefined,\n xAxisNumberFormatString: string | undefined,\n yAxisDateFormatString: string | undefined,\n yAxisNumberFormatString: string | undefined,\n ): DataSet => {\n /**\n * please do not destructure any of the props here,\n * instead send them as parameter to this functions so that\n * this functions get called whenever the prop changes\n */\n const flattenData: FlattenData[] = [];\n /**\n * below for each loop will store all the datapoints in the one array.\n * basically it will flatten the nestesd array (data prop) into single array\n * of object. where each object contains x, y, rectText , value and legend propety of single\n * data point.\n */\n data.forEach((item: IHeatMapChartData) => {\n item.data.forEach((point: IHeatMapChartDataPoint) => {\n flattenData.push({ ...point, legend: item.legend });\n });\n });\n const yPoints: RectanglesGraphData = {};\n const uniqueYPoints: { [key: string]: '1' } = {};\n const uniqueXPoints: { [key: string]: '1' } = {};\n flattenData.forEach((item: FlattenData) => {\n const posX = this._getXIndex(item.x);\n const posY = this._getYIndex(item.y);\n\n uniqueXPoints[posX] = '1';\n uniqueYPoints[posY] = '1';\n /** we will check if the property(posY) is already there in object, if Yes,\n * then we will append the item in the Array related to the pos, if not\n * then we will simply append the item in the new Array and\n * assign that array to the property (posY) in the Object\n * and finally we will get the array of Objects associated to each\n * property (which is nothing but y data point) and object in the\n * array are noting but x data points associated to the property y\n */\n if (yPoints[posY]) {\n yPoints[posY] = [...yPoints[posY], item];\n } else {\n yPoints[posY] = [item];\n }\n });\n /**\n * we will now sort(ascending) the array's of y data point based on the x value\n * sorting is important to achive the accessibility order of the\n * rectangles and then format the x and y datapoints respectively\n */\n Object.keys(yPoints).forEach((item: string) => {\n yPoints[item]\n .sort((a: IHeatMapChartDataPoint, b: IHeatMapChartDataPoint) => {\n if (this._xAxisType === XAxisTypes.StringAxis) {\n return (a.x as string).toLowerCase() > (b.x as string).toLowerCase() ? 1 : -1;\n } else if (this._xAxisType === XAxisTypes.DateAxis) {\n return (a.x as Date).getTime() - (b.x as Date).getTime();\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return +(a.x as string) > +(b.x as string) ? 1 : -1;\n } else {\n return a.x > b.x ? 1 : -1;\n }\n })\n .forEach((datapoint: IHeatMapChartDataPoint) => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n datapoint.x = this._getStringFormattedDate(datapoint.x as string, xAxisDateFormatString);\n }\n if (this._xAxisType === XAxisTypes.NumericAxis) {\n datapoint.x = this._getStringFormattedNumber(datapoint.x as string, xAxisNumberFormatString);\n }\n if (this._xAxisType === XAxisTypes.StringAxis) {\n datapoint.x = this._getFormattedLabelForXAxisDataPoint(datapoint.x as string);\n }\n if (this._yAxisType === YAxisType.DateAxis) {\n datapoint.y = this._getStringFormattedDate(datapoint.y as string, yAxisDateFormatString);\n }\n if (this._yAxisType === YAxisType.NumericAxis) {\n datapoint.y = this._getStringFormattedNumber(datapoint.y as string, yAxisNumberFormatString);\n }\n if (this._yAxisType === YAxisType.StringAxis) {\n datapoint.y = this._getFormattedLabelForYAxisDataPoint(datapoint.y as string);\n }\n });\n });\n /**\n * if y-axis data points are of type date or number or if we have string formatter,\n * then we need to change data points to their respective string\n * format, becuase in the private variable this._stringYAxisDatapoints, points will be stored in\n * string format. and in here `yPoint` are not so we need to change, so that\n * function `this._createRectangles` should work perfetcly while looping, and if we don't change\n * then `this._createRectangles` will fail while looping, causing the error\n * Cannot read property 'forEach' of undefined\n */\n\n Object.keys(yPoints).forEach((yPoint: string) => {\n if (this._yAxisType === YAxisType.DateAxis) {\n yPoints[this._getStringFormattedDate(yPoint, yAxisDateFormatString)] = yPoints[yPoint];\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n yPoints[`${this._getStringFormattedNumber(yPoint, yAxisNumberFormatString)}`] = yPoints[yPoint];\n } else {\n yPoints[this._getFormattedLabelForYAxisDataPoint(yPoint)] = yPoints[yPoint];\n }\n });\n /**\n * assigning new data set\n */\n const dataSet = yPoints;\n /**\n * These are the Y axis data points which will get rendered in the\n * Y axis in graph\n */\n const yAxisPoints = this._getYAxisDataPoints(uniqueYPoints);\n /**\n * These are the x axis data points which will get rendered in the\n * x axis in the graph\n */\n\n const xAxisPoints = this._getXAxisDataPoints(uniqueXPoints);\n return {\n dataSet,\n yAxisPoints,\n xAxisPoints,\n };\n };\n\n /**\n * This function will return the final sorted and formatted x-axis points\n * which will be rendered on the x-axis\n * @param points\n * @returns x-axis points\n */\n private _getXAxisDataPoints = (points: { [key: string]: '1' }): string[] => {\n let xAxisPoints: string[] = [];\n const unFormattedXAxisDataPoints = Object.keys(points).sort((a: string, b: string) => {\n if (this._xAxisType === XAxisTypes.DateAxis || this._xAxisType === XAxisTypes.NumericAxis) {\n return +a - +b;\n } else {\n return a.toLowerCase() > b.toLowerCase() ? 1 : -1;\n }\n });\n xAxisPoints = unFormattedXAxisDataPoints.map((xPoint: string) => {\n if (this._xAxisType === XAxisTypes.DateAxis) {\n return this._getStringFormattedDate(xPoint, this.props.xAxisDateFormatString);\n } else if (this._xAxisType === XAxisTypes.NumericAxis) {\n return this._getStringFormattedNumber(xPoint, this.props.xAxisNumberFormatString);\n } else {\n return this._getFormattedLabelForXAxisDataPoint(xPoint);\n }\n });\n\n return xAxisPoints;\n };\n /**\n * This function will return the final sorted and formatted y-axis points\n * which will be rendered on the y-axis\n * @param points\n * @returns yaxis points\n */\n private _getYAxisDataPoints = (points: { [key: string]: '1' }): string[] => {\n let yAxisPoints: string[] = [];\n const unFormattedYAxisDataPoints = Object.keys(points).sort((a: string, b: string) => {\n if (this._yAxisType === YAxisType.DateAxis || this._yAxisType === YAxisType.NumericAxis) {\n return +a - +b;\n } else {\n return a.toLowerCase() > b.toLowerCase() ? 1 : -1;\n }\n });\n yAxisPoints = unFormattedYAxisDataPoints.map((yPoint: string) => {\n if (this._yAxisType === YAxisType.DateAxis) {\n return this._getStringFormattedDate(yPoint, this.props.yAxisDateFormatString);\n } else if (this._yAxisType === YAxisType.NumericAxis) {\n return this._getStringFormattedNumber(yPoint, this.props.yAxisNumberFormatString);\n } else {\n return this._getFormattedLabelForYAxisDataPoint(yPoint);\n }\n });\n\n return yAxisPoints;\n };\n\n private _getStringFormattedDate = (point: string, formatString?: string): string => {\n const date = new Date();\n date.setTime(+point);\n return d3TimeFormat.timeFormat(formatString || '%b/%d')(date);\n };\n\n private _getStringFormattedNumber = (point: string, formatString?: string): string => {\n return d3Format(formatString || '.2~s')(+point);\n };\n\n private _getFormattedLabelForXAxisDataPoint = (point: string): string => {\n const { xAxisStringFormatter } = this.props;\n return xAxisStringFormatter ? xAxisStringFormatter(point) : point;\n };\n\n private _getFormattedLabelForYAxisDataPoint = (point: string): string => {\n const { yAxisStringFormatter } = this.props;\n return yAxisStringFormatter ? yAxisStringFormatter(point) : point;\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legendTitle: string) => {\n return (\n this.state.selectedLegend === legendTitle ||\n (this.state.selectedLegend === '' && this.state.activeLegend === legendTitle)\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 _getAriaLabel = (point: FlattenData): string => {\n const xValue = point.x;\n const yValue = point.y;\n const legend = point.legend;\n const zValue = point.ratio ? `${point.ratio[0]}/${point.ratio[1]}` : point.rectText || point.value;\n const description = point.descriptionMessage;\n return (\n point.callOutAccessibilityData?.ariaLabel ||\n `${xValue}, ${yValue}. ${legend}, ${zValue}.` + (description ? ` ${description}.` : '')\n );\n };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shape.js","sourceRoot":"../src/","sources":["components/Legends/shape.tsx"],"names":[],"mappings":";;;;;AAAA,6BAA+B;AAE/B,uDAAiE;AAajE,IAAM,SAAS;IACb,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,MAAM,CAAG,IAAG,6CAA6C;IAC3E,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,MAAM,CAAG,IAAG,iCAAiC;IAC/D,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,QAAQ,CAAG,IAAG,2CAA2C;IAC3E,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,OAAO,CAAG,IAAG,2CAA2C;IAC1E,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,OAAO,CAAG,IAAG,iCAAiC;IAChE,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,OAAO,CAAG,IAAG,6BAA6B;IAC5D,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,QAAQ,CAAG,IAAG,+DAA+D;IAC/F,GAAC,
|
|
1
|
+
{"version":3,"file":"shape.js","sourceRoot":"../src/","sources":["components/Legends/shape.tsx"],"names":[],"mappings":";;;;;AAAA,6BAA+B;AAE/B,uDAAiE;AAajE,IAAM,SAAS;IACb,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,MAAM,CAAG,IAAG,6CAA6C;IAC3E,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,MAAM,CAAG,IAAG,iCAAiC;IAC/D,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,QAAQ,CAAG,IAAG,2CAA2C;IAC3E,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,OAAO,CAAG,IAAG,2CAA2C;IAC1E,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,OAAO,CAAG,IAAG,iCAAiC;IAChE,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,OAAO,CAAG,IAAG,6BAA6B;IAC5D,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,QAAQ,CAAG,IAAG,+DAA+D;IAC/F,GAAC,KAAG,kBAAM,CAAC,kBAAM,CAAC,OAAO,CAAG,IAC1B,uFAAuF;IACzF,GAAC,KAAG,wBAAY,CAAC,wBAAY,CAAC,UAAU,CAAG,IAAG,2BAA2B;OAC1E,CAAC;AAEK,IAAM,KAAK,GAA0B,UAAC,EAAkD;QAAhD,QAAQ,cAAA,EAAE,SAAS,eAAA,EAAE,KAAK,WAAA,EAAE,kBAAkB,wBAAA;IAC3F,IAAI,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE;QAChD,OAAO,6BAAK,SAAS,EAAE,kBAAkB,GAAI,CAAC;KAC/C;IACD,OAAO,CACL,8CACE,KAAK,EAAE,EAAE,EACT,MAAM,EAAE,EAAE,EACV,OAAO,EAAE,aAAa,IAClB,QAAQ,IACZ,SAAS,EAAE,aAAU,KAAK,KAAK,kBAAM,CAAC,kBAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,kBAAM,CAAC,kBAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,aAAS;QAEjH,+CAAM,CAAC,EAAE,SAAS,CAAC,KAAK,CAAC,IAAM,SAAS,EAAI,CACxC,CACP,CAAC;AACJ,CAAC,CAAC;AAfW,QAAA,KAAK,SAehB","sourcesContent":["import * as React from 'react';\nimport { LegendShape } from './Legends.types';\nimport { CustomPoints, Points } from '../../utilities/utilities';\n\nexport interface IShapeProps {\n svgProps: React.SVGAttributes<SVGElement>;\n pathProps: React.SVGAttributes<SVGPathElement>;\n shape: LegendShape;\n classNameForNonSvg?: string;\n}\n\ntype PointPathType = {\n [key: string]: string;\n};\n\nconst pointPath: PointPathType = {\n [`${Points[Points.circle]}`]: 'M1 6 A5 5 0 1 0 12 6 M1 6 A5 5 0 0 1 12 6',\n [`${Points[Points.square]}`]: 'M1 1 L12 1 L12 12 L1 12 L1 1 Z',\n [`${Points[Points.triangle]}`]: 'M6 10L8.74228e-07 -1.04907e-06L12 0L6 10Z',\n [`${Points[Points.pyramid]}`]: 'M6 10L8.74228e-07 -1.04907e-06L12 0L6 10Z',\n [`${Points[Points.diamond]}`]: 'M2 2 L10 2 L10 10 L2 10 L2 2 Z',\n [`${Points[Points.hexagon]}`]: 'M9 0H3L0 5L3 10H9L12 5L9 0Z',\n [`${Points[Points.pentagon]}`]: 'M6.06061 0L0 4.21277L2.30303 11H9.69697L12 4.21277L6.06061 0Z',\n [`${Points[Points.octagon]}`]:\n 'M7.08333 0H2.91667L0 2.91667V7.08333L2.91667 10H7.08333L10 7.08333V2.91667L7.08333 0Z',\n [`${CustomPoints[CustomPoints.dottedLine]}`]: 'M0 6 H3 M5 6 H8 M10 6 H13',\n};\n\nexport const Shape: React.FC<IShapeProps> = ({ svgProps, pathProps, shape, classNameForNonSvg }) => {\n if (Object.keys(pointPath).indexOf(shape) === -1) {\n return <div className={classNameForNonSvg} />;\n }\n return (\n <svg\n width={14}\n height={14}\n viewBox={'-1 -1 14 14'}\n {...svgProps}\n transform={`rotate(${shape === Points[Points.diamond] ? 45 : shape === Points[Points.triangle] ? 180 : 0}, 0, 0)`}\n >\n <path d={pointPath[shape]} {...pathProps} />\n </svg>\n );\n};\n"]}
|
|
@@ -63,7 +63,18 @@ var LineChartBase = /** @class */ (function (_super) {
|
|
|
63
63
|
_this_1._injectIndexPropertyInLineChartData = function (lineChartData) {
|
|
64
64
|
var _a = _this_1.props.allowMultipleShapesForPoints, allowMultipleShapesForPoints = _a === void 0 ? false : _a;
|
|
65
65
|
return lineChartData
|
|
66
|
-
? lineChartData.map(function (item, index) {
|
|
66
|
+
? lineChartData.map(function (item, index) {
|
|
67
|
+
var _a, _b;
|
|
68
|
+
var color;
|
|
69
|
+
// isInverted property is applicable to v8 themes only
|
|
70
|
+
if (typeof item.color === 'undefined') {
|
|
71
|
+
color = index_3.getNextColor(index, 0, (_a = _this_1.props.theme) === null || _a === void 0 ? void 0 : _a.isInverted);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
color = index_3.getColorFromToken(item.color, (_b = _this_1.props.theme) === null || _b === void 0 ? void 0 : _b.isInverted);
|
|
75
|
+
}
|
|
76
|
+
return tslib_1.__assign(tslib_1.__assign({}, item), { index: allowMultipleShapesForPoints ? index : -1, color: color });
|
|
77
|
+
})
|
|
67
78
|
: [];
|
|
68
79
|
};
|
|
69
80
|
_this_1._getCustomizedCallout = function () {
|
|
@@ -166,6 +177,7 @@ var LineChartBase = /** @class */ (function (_super) {
|
|
|
166
177
|
}
|
|
167
178
|
};
|
|
168
179
|
_this_1._createColorFillBars = function (containerHeight) {
|
|
180
|
+
var _a;
|
|
169
181
|
var colorFillBars = [];
|
|
170
182
|
if (_this_1.state.isSelectedLegend) {
|
|
171
183
|
_this_1._colorFillBars = _this_1.state.selectedColorBarLegend;
|
|
@@ -178,9 +190,11 @@ var LineChartBase = /** @class */ (function (_super) {
|
|
|
178
190
|
for (var i = 0; i < _this_1._colorFillBars.length; i++) {
|
|
179
191
|
var colorFillBar = _this_1._colorFillBars[i];
|
|
180
192
|
var colorFillBarId = Utilities_1.getId(colorFillBar.legend.replace(/\W/g, ''));
|
|
193
|
+
// isInverted property is applicable to v8 themes only
|
|
194
|
+
var color = index_3.getColorFromToken(colorFillBar.color, (_a = _this_1.props.theme) === null || _a === void 0 ? void 0 : _a.isInverted);
|
|
181
195
|
if (colorFillBar.applyPattern) {
|
|
182
196
|
// Using a pattern element because CSS was unable to render diagonal stripes for rect elements
|
|
183
|
-
colorFillBars.push(_this_1._getStripePattern(
|
|
197
|
+
colorFillBars.push(_this_1._getStripePattern(color, i));
|
|
184
198
|
}
|
|
185
199
|
for (var j = 0; j < colorFillBar.data.length; j++) {
|
|
186
200
|
var startX = colorFillBar.data[j].startX;
|
|
@@ -188,7 +202,7 @@ var LineChartBase = /** @class */ (function (_super) {
|
|
|
188
202
|
var opacity = _this_1._legendHighlighted(colorFillBar.legend) || _this_1._noLegendHighlighted() || _this_1.state.isSelectedLegend
|
|
189
203
|
? _this_1._getColorFillBarOpacity(colorFillBar)
|
|
190
204
|
: 0.1;
|
|
191
|
-
colorFillBars.push(React.createElement("rect", { fill: colorFillBar.applyPattern ? "url(#" + _this_1._colorFillBarPatternId + "_" + i + ")" :
|
|
205
|
+
colorFillBars.push(React.createElement("rect", { fill: colorFillBar.applyPattern ? "url(#" + _this_1._colorFillBarPatternId + "_" + i + ")" : color, fillOpacity: opacity, x: _this_1._xAxisScale(startX), y: _this_1._yAxisScale(yMinMaxValues.endValue) - FILL_Y_PADDING, width: Math.abs(_this_1._xAxisScale(endX) - _this_1._xAxisScale(startX)), height: _this_1._yAxisScale(_this_1.props.yMinValue || 0) - _this_1._yAxisScale(yMinMaxValues.endValue) + FILL_Y_PADDING, key: "" + colorFillBarId + j }));
|
|
192
206
|
}
|
|
193
207
|
}
|
|
194
208
|
return colorFillBars;
|
|
@@ -605,10 +619,13 @@ var LineChartBase = /** @class */ (function (_super) {
|
|
|
605
619
|
});
|
|
606
620
|
var colorFillBarsLegendDataItems = this.props.colorFillBars
|
|
607
621
|
? this.props.colorFillBars.map(function (colorFillBar, index) {
|
|
622
|
+
var _a;
|
|
608
623
|
var title = colorFillBar.legend;
|
|
624
|
+
// isInverted property is applicable to v8 themes only
|
|
625
|
+
var color = index_3.getColorFromToken(colorFillBar.color, (_a = _this_1.props.theme) === null || _a === void 0 ? void 0 : _a.isInverted);
|
|
609
626
|
var legend = {
|
|
610
627
|
title: title,
|
|
611
|
-
color:
|
|
628
|
+
color: color,
|
|
612
629
|
action: function () {
|
|
613
630
|
if (isLegendMultiSelectEnabled) {
|
|
614
631
|
_this_1._handleMultipleColorFillBarLegendSelectionAction(colorFillBar);
|