@fluentui/react-charting 5.9.41 → 5.9.44
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 +71 -2
- package/CHANGELOG.md +34 -3
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/lib/Styling.js +3 -1
- package/lib/Styling.js.map +1 -1
- package/lib/components/AreaChart/AreaChart.base.js +1 -1
- package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.base.js +1 -1
- package/lib/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.base.js +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.base.js +1 -1
- package/lib/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
- package/lib/components/StackedBarChart/MultiStackedBarChart.base.js +1 -1
- package/lib/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
- package/lib/components/StackedBarChart/StackedBarChart.base.js +1 -1
- package/lib/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/lib-amd/Styling.js +1 -0
- package/lib-amd/Styling.js.map +1 -1
- package/lib-amd/components/AreaChart/AreaChart.base.js +1 -1
- package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-amd/components/DonutChart/DonutChart.base.js +1 -1
- package/lib-amd/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +1 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.base.js +1 -1
- package/lib-amd/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
- package/lib-amd/components/StackedBarChart/MultiStackedBarChart.base.js +1 -1
- package/lib-amd/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
- package/lib-amd/components/StackedBarChart/StackedBarChart.base.js +1 -1
- package/lib-amd/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-amd/version.js +1 -1
- package/lib-amd/version.js.map +1 -1
- package/lib-commonjs/Styling.js +1 -0
- package/lib-commonjs/Styling.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.js +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.base.js +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.base.js +1 -1
- package/lib-commonjs/components/HorizontalBarChart/HorizontalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.base.js +1 -1
- package/lib-commonjs/components/StackedBarChart/MultiStackedBarChart.base.js.map +1 -1
- package/lib-commonjs/components/StackedBarChart/StackedBarChart.base.js +1 -1
- package/lib-commonjs/components/StackedBarChart/StackedBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-commonjs/version.js +1 -1
- package/lib-commonjs/version.js.map +1 -1
- package/package.json +4 -4
|
@@ -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 * determines if the legend any of the legend is selected or not\n * @default false\n */\n isLegendSelected: boolean;\n /**\n * contains the seleted legend string\n */\n activeLegend: string;\n /**\n * determines if the legend is hovered or not\n * @default false\n */\n isLegendHovered: boolean;\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 isLegendSelected: false,\n activeLegend: '',\n isLegendHovered: false,\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.bottomLeftEdge,\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 let shouldHighlight = true;\n if (this.state.isLegendHovered || this.state.isLegendSelected) {\n shouldHighlight = legendTitle === this.state.activeLegend;\n }\n return shouldHighlight ? '1' : '0.1';\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 isCalloutVisible: true,\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 isCalloutVisible: true,\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 {...(this.state.calloutId && {\n 'aria-labelledby': `${this.state.calloutId}`,\n })}\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, this functionality\n * should happen only when there no legend Selected\n * @param legendTitle\n */\n private _onLegendHover = (legendTitle: string): void => {\n if (this.state.isLegendSelected === false) {\n this.setState({\n activeLegend: legendTitle,\n isLegendHovered: true,\n });\n }\n };\n\n /**\n * when the mouse is out from the legend , we need\n * to show the graph in initial mode. isLegendFocused will\n * be useful at the scenario where mouseout happend for\n * the legends which are in overflow card\n * @param isLegendFocused\n */\n private _onLegendLeave = (isLegendFocused?: boolean): void => {\n if (!!isLegendFocused || this.state.isLegendSelected === false) {\n this.setState({\n activeLegend: '',\n isLegendHovered: false,\n isLegendSelected: isLegendFocused ? false : this.state.isLegendSelected,\n });\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, then check if the consumer has clicked already\n * seleceted legend if yes un-select the legend, else\n * set the acitve legend state to legendTitle\n *\n * if legend is not alredy selceted, simply set the isLegendSelected to true\n * and the active legend to the legendTitle of selected legend\n */\n if (this.state.isLegendSelected) {\n if (this.state.activeLegend === legendTitle) {\n this.setState({\n activeLegend: '',\n isLegendSelected: false,\n });\n } else {\n this.setState({ activeLegend: legendTitle });\n }\n } else {\n this.setState({\n activeLegend: legendTitle,\n isLegendSelected: true,\n isLegendHovered: false,\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._onLegendHover(item.legend);\n },\n onMouseOutAction: (isLegendSelected?: boolean) => {\n this._onLegendLeave(isLegendSelected);\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"]}
|
|
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 * determines if the legend any of the legend is selected or not\n * @default false\n */\n isLegendSelected: boolean;\n /**\n * contains the seleted legend string\n */\n activeLegend: string;\n /**\n * determines if the legend is hovered or not\n * @default false\n */\n isLegendHovered: boolean;\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 isLegendSelected: false,\n activeLegend: '',\n isLegendHovered: false,\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 let shouldHighlight = true;\n if (this.state.isLegendHovered || this.state.isLegendSelected) {\n shouldHighlight = legendTitle === this.state.activeLegend;\n }\n return shouldHighlight ? '1' : '0.1';\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 isCalloutVisible: true,\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 isCalloutVisible: true,\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 {...(this.state.calloutId && {\n 'aria-labelledby': `${this.state.calloutId}`,\n })}\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, this functionality\n * should happen only when there no legend Selected\n * @param legendTitle\n */\n private _onLegendHover = (legendTitle: string): void => {\n if (this.state.isLegendSelected === false) {\n this.setState({\n activeLegend: legendTitle,\n isLegendHovered: true,\n });\n }\n };\n\n /**\n * when the mouse is out from the legend , we need\n * to show the graph in initial mode. isLegendFocused will\n * be useful at the scenario where mouseout happend for\n * the legends which are in overflow card\n * @param isLegendFocused\n */\n private _onLegendLeave = (isLegendFocused?: boolean): void => {\n if (!!isLegendFocused || this.state.isLegendSelected === false) {\n this.setState({\n activeLegend: '',\n isLegendHovered: false,\n isLegendSelected: isLegendFocused ? false : this.state.isLegendSelected,\n });\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, then check if the consumer has clicked already\n * seleceted legend if yes un-select the legend, else\n * set the acitve legend state to legendTitle\n *\n * if legend is not alredy selceted, simply set the isLegendSelected to true\n * and the active legend to the legendTitle of selected legend\n */\n if (this.state.isLegendSelected) {\n if (this.state.activeLegend === legendTitle) {\n this.setState({\n activeLegend: '',\n isLegendSelected: false,\n });\n } else {\n this.setState({ activeLegend: legendTitle });\n }\n } else {\n this.setState({\n activeLegend: legendTitle,\n isLegendSelected: true,\n isLegendHovered: false,\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._onLegendHover(item.legend);\n },\n onMouseOutAction: (isLegendSelected?: boolean) => {\n this._onLegendLeave(isLegendSelected);\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"]}
|
|
@@ -112,7 +112,7 @@ var HorizontalBarChartBase = /** @class */ (function (_super) {
|
|
|
112
112
|
}
|
|
113
113
|
}, className: _this._classNames.barWrapper }, bars))))));
|
|
114
114
|
}),
|
|
115
|
-
React.createElement(Callout, __assign({ target: this.state.refSelected, coverTarget: true, isBeakVisible: false, gapSpace: 30, hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible), directionalHint: DirectionalHint.
|
|
115
|
+
React.createElement(Callout, __assign({ target: this.state.refSelected, coverTarget: true, isBeakVisible: false, gapSpace: 30, hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible), directionalHint: DirectionalHint.topAutoEdge, id: this._calloutId, onDismiss: this._closeCallout, preventDismissOnLostFocus: true }, this.props.calloutProps, this._getAccessibleDataObject(this.state.callOutAccessibilityData)),
|
|
116
116
|
React.createElement(React.Fragment, null, this.props.onRenderCalloutPerHorizontalBar ? (this.props.onRenderCalloutPerHorizontalBar(this.state.barCalloutProps)) : (React.createElement(ChartHoverCard, { Legend: this.state.xCalloutValue ? this.state.xCalloutValue : this.state.legend, YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.hoverValue, color: this.state.lineColor, culture: this.props.culture }))))));
|
|
117
117
|
};
|
|
118
118
|
HorizontalBarChartBase.prototype._refCallback = function (element, legendTitle) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HorizontalBarChart.base.js","sourceRoot":"../src/","sources":["components/HorizontalBarChart/HorizontalBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNamesFunction, find, getId } from '@fluentui/react/lib/Utilities';\nimport { IProcessedStyleSet, IPalette } from '@fluentui/react/lib/Styling';\nimport {\n IAccessibilityProps,\n IChartProps,\n IHorizontalBarChartProps,\n IHorizontalBarChartStyleProps,\n IHorizontalBarChartStyles,\n IChartDataPoint,\n IRefArrayData,\n} from './index';\nimport { Callout, DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ChartHoverCard, convertToLocaleString } from '../../utilities/index';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\n\nconst getClassNames = classNamesFunction<IHorizontalBarChartStyleProps, IHorizontalBarChartStyles>();\n\nexport interface IHorizontalBarChartState {\n isCalloutVisible: boolean;\n refSelected: SVGGElement | null | undefined;\n color: string;\n hoverValue: string | number | Date | null;\n lineColor: string;\n legend: string | null;\n xCalloutValue?: string;\n yCalloutValue?: string;\n barCalloutProps?: IChartDataPoint;\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport class HorizontalBarChartBase extends React.Component<IHorizontalBarChartProps, IHorizontalBarChartState> {\n private _barHeight: number;\n private _classNames: IProcessedStyleSet<IHorizontalBarChartStyles>;\n private _uniqLineText: string;\n private _calloutId: string;\n private _refArray: IRefArrayData[];\n private _calloutAnchorPoint: IChartDataPoint | null;\n\n constructor(props: IHorizontalBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n hoverValue: '',\n lineColor: '',\n legend: '',\n refSelected: null,\n // eslint-disable-next-line react/no-unused-state\n color: '',\n xCalloutValue: '',\n yCalloutValue: '',\n };\n this._refArray = [];\n this._uniqLineText = '_HorizontalLine_' + Math.random().toString(36).substring(7);\n this._hoverOff = this._hoverOff.bind(this);\n this._calloutId = getId('callout');\n }\n\n public render(): JSX.Element {\n const { data, theme } = this.props;\n this._adjustProps();\n const { palette } = theme!;\n let datapoint: number | undefined = 0;\n return (\n <div className={this._classNames.root} onMouseLeave={this._handleChartMouseLeave}>\n {data!.map((points: IChartProps, index: number) => {\n if (points.chartData && points.chartData![0] && points.chartData![0].horizontalBarChartdata!.x) {\n datapoint = points.chartData![0].horizontalBarChartdata!.x;\n } else {\n datapoint = 0;\n }\n points.chartData![1] = {\n legend: '',\n horizontalBarChartdata: {\n x: points.chartData![0].horizontalBarChartdata!.y - datapoint!,\n y: points.chartData![0].horizontalBarChartdata!.y,\n },\n color: palette.neutralTertiaryAlt,\n };\n\n const chartDataText = this._getChartDataText(points!);\n const bars = this._createBars(points!, palette);\n const keyVal = this._uniqLineText + '_' + index;\n\n return (\n <div key={index} className={this._classNames.items}>\n <div className={this._classNames.items}>\n <FocusZone direction={FocusZoneDirection.horizontal}>\n <div className={this._classNames.chartTitle}>\n {points!.chartTitle && (\n <div\n className={this._classNames.chartDataText}\n {...this._getAccessibleDataObject(points!.chartTitleAccessibilityData)}\n >\n {points!.chartTitle}\n </div>\n )}\n {chartDataText}\n </div>\n </FocusZone>\n {points!.chartData![0].data && this._createBenchmark(points!)}\n <FocusZone direction={FocusZoneDirection.horizontal}>\n <svg className={this._classNames.chart} aria-label={points!.chartTitle}>\n <g\n id={keyVal}\n key={keyVal}\n ref={(e: SVGGElement) => {\n this._refCallback(e, points!.chartData![0].legend);\n }}\n // NOTE: points.chartData![0] contains current data value\n onClick={() => {\n const p = points!.chartData![0];\n if (p && p.onClick) {\n p.onClick();\n }\n }}\n className={this._classNames.barWrapper}\n >\n {bars}\n </g>\n </svg>\n </FocusZone>\n </div>\n </div>\n );\n })}\n <Callout\n target={this.state.refSelected}\n coverTarget={true}\n isBeakVisible={false}\n gapSpace={30}\n hidden={!(!this.props.hideTooltip && this.state.isCalloutVisible)}\n directionalHint={DirectionalHint.rightTopEdge}\n id={this._calloutId}\n onDismiss={this._closeCallout}\n preventDismissOnLostFocus={true}\n {...this.props.calloutProps!}\n {...this._getAccessibleDataObject(this.state.callOutAccessibilityData)}\n >\n <>\n {this.props.onRenderCalloutPerHorizontalBar ? (\n this.props.onRenderCalloutPerHorizontalBar(this.state.barCalloutProps)\n ) : (\n <ChartHoverCard\n Legend={this.state.xCalloutValue ? this.state.xCalloutValue : this.state.legend!}\n YValue={this.state.yCalloutValue ? this.state.yCalloutValue : this.state.hoverValue!}\n color={this.state.lineColor}\n culture={this.props.culture}\n />\n )}\n </>\n </Callout>\n </div>\n );\n }\n\n private _refCallback(element: SVGGElement, legendTitle: string | undefined): void {\n this._refArray.push({ index: legendTitle, refElement: element });\n }\n\n private _hoverOn(hoverValue: string | number | Date | null, point: IChartDataPoint): void {\n if ((!this.state.isCalloutVisible || this.state.legend !== point.legend!) && this._calloutAnchorPoint !== point) {\n const currentHoveredElement = find(\n this._refArray,\n (currentElement: IRefArrayData) => currentElement.index === point.legend,\n );\n this._calloutAnchorPoint = point;\n this.setState({\n isCalloutVisible: true,\n hoverValue: hoverValue,\n lineColor: point.color!,\n legend: point.legend!,\n refSelected: currentHoveredElement!.refElement,\n xCalloutValue: point.xAxisCalloutData!,\n yCalloutValue: point.yAxisCalloutData!,\n barCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _hoverOff(): void {\n /**/\n }\n\n private _handleChartMouseLeave = () => {\n this._calloutAnchorPoint = null;\n if (this.state.isCalloutVisible) {\n this.setState({\n isCalloutVisible: false,\n hoverValue: '',\n refSelected: null,\n lineColor: '',\n legend: '',\n });\n }\n };\n\n private _adjustProps = (): void => {\n this._barHeight = this.props.barHeight || 8;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.props.width,\n className: this.props.className,\n barHeight: this._barHeight,\n color: this.state.lineColor,\n });\n };\n\n private _getChartDataText = (data: IChartProps) => {\n return this.props.barChartCustomData ? (\n <div data-is-focusable={true} role=\"text\">\n {this.props.barChartCustomData(data)}\n </div>\n ) : (\n this._getDefaultTextData(data)\n );\n };\n\n private _getDefaultTextData(data: IChartProps): JSX.Element {\n const { culture } = this.props;\n const chartDataMode = this.props.chartDataMode || 'default';\n const chartData: IChartDataPoint = data!.chartData![0];\n const x = chartData.horizontalBarChartdata!.x;\n const y = chartData.horizontalBarChartdata!.y;\n\n const accessibilityData = this._getAccessibleDataObject(data.chartDataAccessibilityData!);\n switch (chartDataMode) {\n case 'default':\n return (\n <div className={this._classNames.chartDataText} {...accessibilityData}>\n {convertToLocaleString(x, culture)}\n </div>\n );\n case 'fraction':\n return (\n <div {...accessibilityData}>\n <span className={this._classNames.chartDataText}>{convertToLocaleString(x, culture)}</span>\n <span className={this._classNames.chartDataTextDenominator}>{'/' + convertToLocaleString(y, culture)}</span>\n </div>\n );\n case 'percentage':\n const dataRatioPercentage = `${convertToLocaleString(Math.round((x / y) * 100), culture)}%`;\n return (\n <div className={this._classNames.chartDataText} {...accessibilityData}>\n {dataRatioPercentage}\n </div>\n );\n }\n }\n\n private _createBenchmark(data: IChartProps): JSX.Element {\n const totalData = data.chartData![0].horizontalBarChartdata!.y;\n const benchmarkData = data.chartData![0].data;\n const benchmarkRatio = Math.round(((benchmarkData ? benchmarkData : 0) / totalData) * 100);\n\n const benchmarkStyles = {\n marginLeft: 'calc(' + benchmarkRatio + '% - 4px)',\n marginRight: 'calc(' + (100 - benchmarkRatio) + '% - 4px)',\n };\n\n return <div className={this._classNames.triangle} style={benchmarkStyles} />;\n }\n\n private _createBars(data: IChartProps, palette: IPalette): JSX.Element[] {\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n // calculating starting point of each bar and it's range\n const startingPoint: number[] = [];\n const total = data.chartData!.reduce(\n (acc: number, point: IChartDataPoint) =>\n acc + (point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0),\n 0,\n );\n let prevPosition = 0;\n let value = 0;\n\n const bars = data.chartData!.map((point: IChartDataPoint, index: number) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const pointData = point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0;\n if (index > 0) {\n prevPosition += value;\n }\n value = (pointData / total) * 100;\n if (value < 0) {\n value = 0;\n } else if (value < 1 && value !== 0) {\n value = 1;\n }\n startingPoint.push(prevPosition);\n if (value < 1) {\n return <React.Fragment key={index}> </React.Fragment>;\n }\n const xValue = point.horizontalBarChartdata!.x;\n return (\n <rect\n key={index}\n x={startingPoint[index] + '%'}\n y={0}\n data-is-focusable={point.legend !== '' ? true : false}\n width={value + '%'}\n height={this._barHeight}\n fill={color}\n onMouseOver={point.legend !== '' ? this._hoverOn.bind(this, xValue, point) : undefined}\n onFocus={point.legend !== '' ? this._hoverOn.bind(this, xValue, point) : undefined}\n aria-labelledby={this._calloutId}\n role=\"img\"\n aria-label=\"Horizontal bar chart\"\n onBlur={this._hoverOff}\n onMouseLeave={this._hoverOff}\n />\n );\n });\n return bars;\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAccessibleDataObject = (accessibleData?: IAccessibilityProps, role: string = 'text') => {\n accessibleData = accessibleData ?? {};\n return {\n role,\n 'data-is-focusable': true,\n 'aria-label': accessibleData!.ariaLabel,\n 'aria-labelledby': accessibleData!.ariaLabelledBy,\n 'aria-describedby': accessibleData!.ariaDescribedBy,\n };\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HorizontalBarChart.base.js","sourceRoot":"../src/","sources":["components/HorizontalBarChart/HorizontalBarChart.base.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,+BAA+B,CAAC;AAWhF,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,IAAM,aAAa,GAAG,kBAAkB,EAA4D,CAAC;AAerG;IAA4C,0CAAmE;IAQ7G,gCAAY,KAA+B;QAA3C,YACE,kBAAM,KAAK,CAAC,SAgBb;QAiIO,4BAAsB,GAAG;YAC/B,KAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;YAChC,IAAI,KAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;gBAC/B,KAAI,CAAC,QAAQ,CAAC;oBACZ,gBAAgB,EAAE,KAAK;oBACvB,UAAU,EAAE,EAAE;oBACd,WAAW,EAAE,IAAI;oBACjB,SAAS,EAAE,EAAE;oBACb,MAAM,EAAE,EAAE;iBACX,CAAC,CAAC;aACJ;QACH,CAAC,CAAC;QAEM,kBAAY,GAAG;YACrB,KAAI,CAAC,UAAU,GAAG,KAAI,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC;YAC5C,KAAI,CAAC,WAAW,GAAG,aAAa,CAAC,KAAI,CAAC,KAAK,CAAC,MAAO,EAAE;gBACnD,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAM;gBACxB,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,KAAK;gBACvB,SAAS,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;gBAC/B,SAAS,EAAE,KAAI,CAAC,UAAU;gBAC1B,KAAK,EAAE,KAAI,CAAC,KAAK,CAAC,SAAS;aAC5B,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,uBAAiB,GAAG,UAAC,IAAiB;YAC5C,OAAO,KAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CACrC,kDAAwB,IAAI,EAAE,IAAI,EAAC,MAAM,IACtC,KAAI,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAChC,CACP,CAAC,CAAC,CAAC,CACF,KAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAC/B,CAAC;QACJ,CAAC,CAAC;QAkGM,mBAAa,GAAG;YACtB,KAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC,CAAC;QAEM,8BAAwB,GAAG,UAAC,cAAoC,EAAE,IAAqB;YAArB,qBAAA,EAAA,aAAqB;YAC7F,cAAc,GAAG,cAAc,aAAd,cAAc,cAAd,cAAc,GAAI,EAAE,CAAC;YACtC,OAAO;gBACL,IAAI,MAAA;gBACJ,mBAAmB,EAAE,IAAI;gBACzB,YAAY,EAAE,cAAe,CAAC,SAAS;gBACvC,iBAAiB,EAAE,cAAe,CAAC,cAAc;gBACjD,kBAAkB,EAAE,cAAe,CAAC,eAAe;aACpD,CAAC;QACJ,CAAC,CAAC;QAjSA,KAAI,CAAC,KAAK,GAAG;YACX,gBAAgB,EAAE,KAAK;YACvB,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,MAAM,EAAE,EAAE;YACV,WAAW,EAAE,IAAI;YACjB,iDAAiD;YACjD,KAAK,EAAE,EAAE;YACT,aAAa,EAAE,EAAE;YACjB,aAAa,EAAE,EAAE;SAClB,CAAC;QACF,KAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,KAAI,CAAC,aAAa,GAAG,kBAAkB,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAClF,KAAI,CAAC,SAAS,GAAG,KAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAI,CAAC,CAAC;QAC3C,KAAI,CAAC,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;;IACrC,CAAC;IAEM,uCAAM,GAAb;QAAA,iBAgGC;QA/FO,IAAA,KAAkB,IAAI,CAAC,KAAK,EAA1B,IAAI,UAAA,EAAE,KAAK,WAAe,CAAC;QACnC,IAAI,CAAC,YAAY,EAAE,CAAC;QACZ,IAAA,OAAO,GAAK,KAAM,QAAX,CAAY;QAC3B,IAAI,SAAS,GAAuB,CAAC,CAAC;QACtC,OAAO,CACL,6BAAK,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,sBAAsB;YAC7E,IAAK,CAAC,GAAG,CAAC,UAAC,MAAmB,EAAE,KAAa;gBAC5C,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,sBAAuB,CAAC,CAAC,EAAE;oBAC9F,SAAS,GAAG,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,sBAAuB,CAAC,CAAC,CAAC;iBAC5D;qBAAM;oBACL,SAAS,GAAG,CAAC,CAAC;iBACf;gBACD,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,GAAG;oBACrB,MAAM,EAAE,EAAE;oBACV,sBAAsB,EAAE;wBACtB,CAAC,EAAE,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,sBAAuB,CAAC,CAAC,GAAG,SAAU;wBAC9D,CAAC,EAAE,MAAM,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,sBAAuB,CAAC,CAAC;qBAClD;oBACD,KAAK,EAAE,OAAO,CAAC,kBAAkB;iBAClC,CAAC;gBAEF,IAAM,aAAa,GAAG,KAAI,CAAC,iBAAiB,CAAC,MAAO,CAAC,CAAC;gBACtD,IAAM,IAAI,GAAG,KAAI,CAAC,WAAW,CAAC,MAAO,EAAE,OAAO,CAAC,CAAC;gBAChD,IAAM,MAAM,GAAG,KAAI,CAAC,aAAa,GAAG,GAAG,GAAG,KAAK,CAAC;gBAEhD,OAAO,CACL,6BAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,KAAK;oBAChD,6BAAK,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,KAAK;wBACpC,oBAAC,SAAS,IAAC,SAAS,EAAE,kBAAkB,CAAC,UAAU;4BACjD,6BAAK,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU;gCACxC,MAAO,CAAC,UAAU,IAAI,CACrB,sCACE,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,aAAa,IACrC,KAAI,CAAC,wBAAwB,CAAC,MAAO,CAAC,2BAA2B,CAAC,GAErE,MAAO,CAAC,UAAU,CACf,CACP;gCACA,aAAa,CACV,CACI;wBACX,MAAO,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,KAAI,CAAC,gBAAgB,CAAC,MAAO,CAAC;wBAC7D,oBAAC,SAAS,IAAC,SAAS,EAAE,kBAAkB,CAAC,UAAU;4BACjD,6BAAK,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,KAAK,gBAAc,MAAO,CAAC,UAAU;gCACpE,2BACE,EAAE,EAAE,MAAM,EACV,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,UAAC,CAAc;wCAClB,KAAI,CAAC,YAAY,CAAC,CAAC,EAAE,MAAO,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oCACrD,CAAC;oCACD,yDAAyD;oCACzD,OAAO,EAAE;wCACP,IAAM,CAAC,GAAG,MAAO,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC;wCAChC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE;4CAClB,CAAC,CAAC,OAAO,EAAE,CAAC;yCACb;oCACH,CAAC,EACD,SAAS,EAAE,KAAI,CAAC,WAAW,CAAC,UAAU,IAErC,IAAI,CACH,CACA,CACI,CACR,CACF,CACP,CAAC;YACJ,CAAC,CAAC;YACF,oBAAC,OAAO,aACN,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,WAAW,EAC9B,WAAW,EAAE,IAAI,EACjB,aAAa,EAAE,KAAK,EACpB,QAAQ,EAAE,EAAE,EACZ,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,EACjE,eAAe,EAAE,eAAe,CAAC,WAAW,EAC5C,EAAE,EAAE,IAAI,CAAC,UAAU,EACnB,SAAS,EAAE,IAAI,CAAC,aAAa,EAC7B,yBAAyB,EAAE,IAAI,IAC3B,IAAI,CAAC,KAAK,CAAC,YAAa,EACxB,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,KAAK,CAAC,wBAAwB,CAAC;gBAEtE,0CACG,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAC5C,IAAI,CAAC,KAAK,CAAC,+BAA+B,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CACvE,CAAC,CAAC,CAAC,CACF,oBAAC,cAAc,IACb,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,MAAO,EAChF,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,UAAW,EACpF,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS,EAC3B,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,GAC3B,CACH,CACA,CACK,CACN,CACP,CAAC;IACJ,CAAC;IAEO,6CAAY,GAApB,UAAqB,OAAoB,EAAE,WAA+B;QACxE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC;IAEO,yCAAQ,GAAhB,UAAiB,UAAyC,EAAE,KAAsB;QAChF,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,MAAO,CAAC,IAAI,IAAI,CAAC,mBAAmB,KAAK,KAAK,EAAE;YAC/G,IAAM,qBAAqB,GAAG,IAAI,CAChC,IAAI,CAAC,SAAS,EACd,UAAC,cAA6B,IAAK,OAAA,cAAc,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAArC,CAAqC,CACzE,CAAC;YACF,IAAI,CAAC,mBAAmB,GAAG,KAAK,CAAC;YACjC,IAAI,CAAC,QAAQ,CAAC;gBACZ,gBAAgB,EAAE,IAAI;gBACtB,UAAU,EAAE,UAAU;gBACtB,SAAS,EAAE,KAAK,CAAC,KAAM;gBACvB,MAAM,EAAE,KAAK,CAAC,MAAO;gBACrB,WAAW,EAAE,qBAAsB,CAAC,UAAU;gBAC9C,aAAa,EAAE,KAAK,CAAC,gBAAiB;gBACtC,aAAa,EAAE,KAAK,CAAC,gBAAiB;gBACtC,eAAe,EAAE,KAAK;gBACtB,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;aACzD,CAAC,CAAC;SACJ;IACH,CAAC;IAEO,0CAAS,GAAjB;QACE,IAAI;IACN,CAAC;IAoCO,oDAAmB,GAA3B,UAA4B,IAAiB;QACnC,IAAA,OAAO,GAAK,IAAI,CAAC,KAAK,QAAf,CAAgB;QAC/B,IAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,SAAS,CAAC;QAC5D,IAAM,SAAS,GAAoB,IAAK,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC;QACvD,IAAM,CAAC,GAAG,SAAS,CAAC,sBAAuB,CAAC,CAAC,CAAC;QAC9C,IAAM,CAAC,GAAG,SAAS,CAAC,sBAAuB,CAAC,CAAC,CAAC;QAE9C,IAAM,iBAAiB,GAAG,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,0BAA2B,CAAC,CAAC;QAC1F,QAAQ,aAAa,EAAE;YACrB,KAAK,SAAS;gBACZ,OAAO,CACL,sCAAK,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,IAAM,iBAAiB,GAClE,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,CAC9B,CACP,CAAC;YACJ,KAAK,UAAU;gBACb,OAAO,CACL,wCAAS,iBAAiB;oBACxB,8BAAM,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,IAAG,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAQ;oBAC3F,8BAAM,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,wBAAwB,IAAG,GAAG,GAAG,qBAAqB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAQ,CACxG,CACP,CAAC;YACJ,KAAK,YAAY;gBACf,IAAM,mBAAmB,GAAM,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,EAAE,OAAO,CAAC,MAAG,CAAC;gBAC5F,OAAO,CACL,sCAAK,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,aAAa,IAAM,iBAAiB,GAClE,mBAAmB,CAChB,CACP,CAAC;SACL;IACH,CAAC;IAEO,iDAAgB,GAAxB,UAAyB,IAAiB;QACxC,IAAM,SAAS,GAAG,IAAI,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,sBAAuB,CAAC,CAAC,CAAC;QAC/D,IAAM,aAAa,GAAG,IAAI,CAAC,SAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9C,IAAM,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,CAAC;QAE3F,IAAM,eAAe,GAAG;YACtB,UAAU,EAAE,OAAO,GAAG,cAAc,GAAG,UAAU;YACjD,WAAW,EAAE,OAAO,GAAG,CAAC,GAAG,GAAG,cAAc,CAAC,GAAG,UAAU;SAC3D,CAAC;QAEF,OAAO,6BAAK,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,GAAI,CAAC;IAC/E,CAAC;IAEO,4CAAW,GAAnB,UAAoB,IAAiB,EAAE,OAAiB;QAAxD,iBAiDC;QAhDC,IAAM,cAAc,GAAa,CAAC,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAChH,wDAAwD;QACxD,IAAM,aAAa,GAAa,EAAE,CAAC;QACnC,IAAM,KAAK,GAAG,IAAI,CAAC,SAAU,CAAC,MAAM,CAClC,UAAC,GAAW,EAAE,KAAsB;YAClC,OAAA,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAA7E,CAA6E,EAC/E,CAAC,CACF,CAAC;QACF,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,IAAI,KAAK,GAAG,CAAC,CAAC;QAEd,IAAM,IAAI,GAAG,IAAI,CAAC,SAAU,CAAC,GAAG,CAAC,UAAC,KAAsB,EAAE,KAAa;YACrE,IAAM,KAAK,GAAW,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpG,IAAM,SAAS,GAAG,KAAK,CAAC,sBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,sBAAuB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACxF,IAAI,KAAK,GAAG,CAAC,EAAE;gBACb,YAAY,IAAI,KAAK,CAAC;aACvB;YACD,KAAK,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;YAClC,IAAI,KAAK,GAAG,CAAC,EAAE;gBACb,KAAK,GAAG,CAAC,CAAC;aACX;iBAAM,IAAI,KAAK,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE;gBACnC,KAAK,GAAG,CAAC,CAAC;aACX;YACD,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACjC,IAAI,KAAK,GAAG,CAAC,EAAE;gBACb,OAAO,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,KAAK,QAAoB,CAAC;aACvD;YACD,IAAM,MAAM,GAAG,KAAK,CAAC,sBAAuB,CAAC,CAAC,CAAC;YAC/C,OAAO,CACL,8BACE,GAAG,EAAE,KAAK,EACV,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,GAAG,GAAG,EAC7B,CAAC,EAAE,CAAC,uBACe,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EACrD,KAAK,EAAE,KAAK,GAAG,GAAG,EAClB,MAAM,EAAE,KAAI,CAAC,UAAU,EACvB,IAAI,EAAE,KAAK,EACX,WAAW,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EACtF,OAAO,EAAE,KAAK,CAAC,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC,KAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAI,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,qBACjE,KAAI,CAAC,UAAU,EAChC,IAAI,EAAC,KAAK,gBACC,sBAAsB,EACjC,MAAM,EAAE,KAAI,CAAC,SAAS,EACtB,YAAY,EAAE,KAAI,CAAC,SAAS,GAC5B,CACH,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,OAAO,IAAI,CAAC;IACd,CAAC;IAkBH,6BAAC;AAAD,CAAC,AA5SD,CAA4C,KAAK,CAAC,SAAS,GA4S1D","sourcesContent":["import * as React from 'react';\nimport { classNamesFunction, find, getId } from '@fluentui/react/lib/Utilities';\nimport { IProcessedStyleSet, IPalette } from '@fluentui/react/lib/Styling';\nimport {\n IAccessibilityProps,\n IChartProps,\n IHorizontalBarChartProps,\n IHorizontalBarChartStyleProps,\n IHorizontalBarChartStyles,\n IChartDataPoint,\n IRefArrayData,\n} from './index';\nimport { Callout, DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ChartHoverCard, convertToLocaleString } from '../../utilities/index';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\n\nconst getClassNames = classNamesFunction<IHorizontalBarChartStyleProps, IHorizontalBarChartStyles>();\n\nexport interface IHorizontalBarChartState {\n isCalloutVisible: boolean;\n refSelected: SVGGElement | null | undefined;\n color: string;\n hoverValue: string | number | Date | null;\n lineColor: string;\n legend: string | null;\n xCalloutValue?: string;\n yCalloutValue?: string;\n barCalloutProps?: IChartDataPoint;\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport class HorizontalBarChartBase extends React.Component<IHorizontalBarChartProps, IHorizontalBarChartState> {\n private _barHeight: number;\n private _classNames: IProcessedStyleSet<IHorizontalBarChartStyles>;\n private _uniqLineText: string;\n private _calloutId: string;\n private _refArray: IRefArrayData[];\n private _calloutAnchorPoint: IChartDataPoint | null;\n\n constructor(props: IHorizontalBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n hoverValue: '',\n lineColor: '',\n legend: '',\n refSelected: null,\n // eslint-disable-next-line react/no-unused-state\n color: '',\n xCalloutValue: '',\n yCalloutValue: '',\n };\n this._refArray = [];\n this._uniqLineText = '_HorizontalLine_' + Math.random().toString(36).substring(7);\n this._hoverOff = this._hoverOff.bind(this);\n this._calloutId = getId('callout');\n }\n\n public render(): JSX.Element {\n const { data, theme } = this.props;\n this._adjustProps();\n const { palette } = theme!;\n let datapoint: number | undefined = 0;\n return (\n <div className={this._classNames.root} onMouseLeave={this._handleChartMouseLeave}>\n {data!.map((points: IChartProps, index: number) => {\n if (points.chartData && points.chartData![0] && points.chartData![0].horizontalBarChartdata!.x) {\n datapoint = points.chartData![0].horizontalBarChartdata!.x;\n } else {\n datapoint = 0;\n }\n points.chartData![1] = {\n legend: '',\n horizontalBarChartdata: {\n x: points.chartData![0].horizontalBarChartdata!.y - datapoint!,\n y: points.chartData![0].horizontalBarChartdata!.y,\n },\n color: palette.neutralTertiaryAlt,\n };\n\n const chartDataText = this._getChartDataText(points!);\n const bars = this._createBars(points!, palette);\n const keyVal = this._uniqLineText + '_' + index;\n\n return (\n <div key={index} className={this._classNames.items}>\n <div className={this._classNames.items}>\n <FocusZone direction={FocusZoneDirection.horizontal}>\n <div className={this._classNames.chartTitle}>\n {points!.chartTitle && (\n <div\n className={this._classNames.chartDataText}\n {...this._getAccessibleDataObject(points!.chartTitleAccessibilityData)}\n >\n {points!.chartTitle}\n </div>\n )}\n {chartDataText}\n </div>\n </FocusZone>\n {points!.chartData![0].data && this._createBenchmark(points!)}\n <FocusZone direction={FocusZoneDirection.horizontal}>\n <svg className={this._classNames.chart} aria-label={points!.chartTitle}>\n <g\n id={keyVal}\n key={keyVal}\n ref={(e: SVGGElement) => {\n this._refCallback(e, points!.chartData![0].legend);\n }}\n // NOTE: points.chartData![0] contains current data value\n onClick={() => {\n const p = points!.chartData![0];\n if (p && p.onClick) {\n p.onClick();\n }\n }}\n className={this._classNames.barWrapper}\n >\n {bars}\n </g>\n </svg>\n </FocusZone>\n </div>\n </div>\n );\n })}\n <Callout\n target={this.state.refSelected}\n coverTarget={true}\n isBeakVisible={false}\n gapSpace={30}\n hidden={!(!this.props.hideTooltip && this.state.isCalloutVisible)}\n directionalHint={DirectionalHint.topAutoEdge}\n id={this._calloutId}\n onDismiss={this._closeCallout}\n preventDismissOnLostFocus={true}\n {...this.props.calloutProps!}\n {...this._getAccessibleDataObject(this.state.callOutAccessibilityData)}\n >\n <>\n {this.props.onRenderCalloutPerHorizontalBar ? (\n this.props.onRenderCalloutPerHorizontalBar(this.state.barCalloutProps)\n ) : (\n <ChartHoverCard\n Legend={this.state.xCalloutValue ? this.state.xCalloutValue : this.state.legend!}\n YValue={this.state.yCalloutValue ? this.state.yCalloutValue : this.state.hoverValue!}\n color={this.state.lineColor}\n culture={this.props.culture}\n />\n )}\n </>\n </Callout>\n </div>\n );\n }\n\n private _refCallback(element: SVGGElement, legendTitle: string | undefined): void {\n this._refArray.push({ index: legendTitle, refElement: element });\n }\n\n private _hoverOn(hoverValue: string | number | Date | null, point: IChartDataPoint): void {\n if ((!this.state.isCalloutVisible || this.state.legend !== point.legend!) && this._calloutAnchorPoint !== point) {\n const currentHoveredElement = find(\n this._refArray,\n (currentElement: IRefArrayData) => currentElement.index === point.legend,\n );\n this._calloutAnchorPoint = point;\n this.setState({\n isCalloutVisible: true,\n hoverValue: hoverValue,\n lineColor: point.color!,\n legend: point.legend!,\n refSelected: currentHoveredElement!.refElement,\n xCalloutValue: point.xAxisCalloutData!,\n yCalloutValue: point.yAxisCalloutData!,\n barCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _hoverOff(): void {\n /**/\n }\n\n private _handleChartMouseLeave = () => {\n this._calloutAnchorPoint = null;\n if (this.state.isCalloutVisible) {\n this.setState({\n isCalloutVisible: false,\n hoverValue: '',\n refSelected: null,\n lineColor: '',\n legend: '',\n });\n }\n };\n\n private _adjustProps = (): void => {\n this._barHeight = this.props.barHeight || 8;\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.props.width,\n className: this.props.className,\n barHeight: this._barHeight,\n color: this.state.lineColor,\n });\n };\n\n private _getChartDataText = (data: IChartProps) => {\n return this.props.barChartCustomData ? (\n <div data-is-focusable={true} role=\"text\">\n {this.props.barChartCustomData(data)}\n </div>\n ) : (\n this._getDefaultTextData(data)\n );\n };\n\n private _getDefaultTextData(data: IChartProps): JSX.Element {\n const { culture } = this.props;\n const chartDataMode = this.props.chartDataMode || 'default';\n const chartData: IChartDataPoint = data!.chartData![0];\n const x = chartData.horizontalBarChartdata!.x;\n const y = chartData.horizontalBarChartdata!.y;\n\n const accessibilityData = this._getAccessibleDataObject(data.chartDataAccessibilityData!);\n switch (chartDataMode) {\n case 'default':\n return (\n <div className={this._classNames.chartDataText} {...accessibilityData}>\n {convertToLocaleString(x, culture)}\n </div>\n );\n case 'fraction':\n return (\n <div {...accessibilityData}>\n <span className={this._classNames.chartDataText}>{convertToLocaleString(x, culture)}</span>\n <span className={this._classNames.chartDataTextDenominator}>{'/' + convertToLocaleString(y, culture)}</span>\n </div>\n );\n case 'percentage':\n const dataRatioPercentage = `${convertToLocaleString(Math.round((x / y) * 100), culture)}%`;\n return (\n <div className={this._classNames.chartDataText} {...accessibilityData}>\n {dataRatioPercentage}\n </div>\n );\n }\n }\n\n private _createBenchmark(data: IChartProps): JSX.Element {\n const totalData = data.chartData![0].horizontalBarChartdata!.y;\n const benchmarkData = data.chartData![0].data;\n const benchmarkRatio = Math.round(((benchmarkData ? benchmarkData : 0) / totalData) * 100);\n\n const benchmarkStyles = {\n marginLeft: 'calc(' + benchmarkRatio + '% - 4px)',\n marginRight: 'calc(' + (100 - benchmarkRatio) + '% - 4px)',\n };\n\n return <div className={this._classNames.triangle} style={benchmarkStyles} />;\n }\n\n private _createBars(data: IChartProps, palette: IPalette): JSX.Element[] {\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n // calculating starting point of each bar and it's range\n const startingPoint: number[] = [];\n const total = data.chartData!.reduce(\n (acc: number, point: IChartDataPoint) =>\n acc + (point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0),\n 0,\n );\n let prevPosition = 0;\n let value = 0;\n\n const bars = data.chartData!.map((point: IChartDataPoint, index: number) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const pointData = point.horizontalBarChartdata!.x ? point.horizontalBarChartdata!.x : 0;\n if (index > 0) {\n prevPosition += value;\n }\n value = (pointData / total) * 100;\n if (value < 0) {\n value = 0;\n } else if (value < 1 && value !== 0) {\n value = 1;\n }\n startingPoint.push(prevPosition);\n if (value < 1) {\n return <React.Fragment key={index}> </React.Fragment>;\n }\n const xValue = point.horizontalBarChartdata!.x;\n return (\n <rect\n key={index}\n x={startingPoint[index] + '%'}\n y={0}\n data-is-focusable={point.legend !== '' ? true : false}\n width={value + '%'}\n height={this._barHeight}\n fill={color}\n onMouseOver={point.legend !== '' ? this._hoverOn.bind(this, xValue, point) : undefined}\n onFocus={point.legend !== '' ? this._hoverOn.bind(this, xValue, point) : undefined}\n aria-labelledby={this._calloutId}\n role=\"img\"\n aria-label=\"Horizontal bar chart\"\n onBlur={this._hoverOff}\n onMouseLeave={this._hoverOff}\n />\n );\n });\n return bars;\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAccessibleDataObject = (accessibleData?: IAccessibilityProps, role: string = 'text') => {\n accessibleData = accessibleData ?? {};\n return {\n role,\n 'data-is-focusable': true,\n 'aria-label': accessibleData!.ariaLabel,\n 'aria-labelledby': accessibleData!.ariaLabelledBy,\n 'aria-describedby': accessibleData!.ariaDescribedBy,\n };\n };\n}\n"]}
|
|
@@ -137,7 +137,7 @@ var MultiStackedBarChartBase = /** @class */ (function (_super) {
|
|
|
137
137
|
return (React.createElement("div", { className: this._classNames.root, onMouseLeave: this._handleChartMouseLeave },
|
|
138
138
|
bars,
|
|
139
139
|
!this.props.hideLegend && React.createElement("div", { className: this._classNames.legendContainer }, legends),
|
|
140
|
-
React.createElement(Callout, __assign({ gapSpace: 15, isBeakVisible: false, target: this.state.refSelected, setInitialFocus: true, hidden: !(!this.props.hideTooltip && isCalloutVisible), directionalHint: DirectionalHint.
|
|
140
|
+
React.createElement(Callout, __assign({ gapSpace: 15, isBeakVisible: false, target: this.state.refSelected, setInitialFocus: true, hidden: !(!this.props.hideTooltip && isCalloutVisible), directionalHint: DirectionalHint.topAutoEdge, id: this._calloutId, onDismiss: this._closeCallout, preventDismissOnLostFocus: true }, this.props.calloutProps, this._getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false)),
|
|
141
141
|
React.createElement(React.Fragment, null, this.props.onRenderCalloutPerDataPoint ? (this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)) : (React.createElement(ChartHoverCard, { Legend: legendName, YValue: calloutYVal, color: this.state.color, culture: culture }))))));
|
|
142
142
|
};
|
|
143
143
|
MultiStackedBarChartBase.prototype._createBarsAndLegends = function (data, barHeight, palette, hideRatio, hideDenominator, href) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/StackedBarChart/MultiStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNamesFunction, getId } from '@fluentui/react/lib/Utilities';\nimport { IProcessedStyleSet, IPalette } from '@fluentui/react/lib/Styling';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n IChartDataPoint,\n IChartProps,\n IMultiStackedBarChartProps,\n IMultiStackedBarChartStyles,\n IMultiStackedBarChartStyleProps,\n} from './index';\nimport { Callout, DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { ChartHoverCard, convertToLocaleString } from '../../utilities/index';\n\nconst getClassNames = classNamesFunction<IMultiStackedBarChartStyleProps, IMultiStackedBarChartStyles>();\n\nexport interface IRefArrayData {\n legendText?: string;\n refElement?: SVGGElement;\n}\n\nexport interface IMultiStackedBarChartState {\n isCalloutVisible: boolean;\n refArray: IRefArrayData[];\n selectedLegendTitle: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n refSelected: any;\n dataForHoverCard: number;\n color: string;\n isLegendHovered: boolean;\n isLegendSelected: boolean;\n xCalloutValue?: string;\n yCalloutValue?: string;\n dataPointCalloutProps?: IChartDataPoint;\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport class MultiStackedBarChartBase extends React.Component<IMultiStackedBarChartProps, IMultiStackedBarChartState> {\n public static defaultProps: Partial<IMultiStackedBarChartProps> = {\n barHeight: 16,\n hideRatio: [],\n hideDenominator: [],\n };\n\n private _classNames: IProcessedStyleSet<IMultiStackedBarChartStyles>;\n private _calloutId: string;\n private _calloutAnchorPoint: IChartDataPoint | null;\n\n public constructor(props: IMultiStackedBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n refArray: [],\n selectedLegendTitle: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n isLegendHovered: false,\n isLegendSelected: false,\n xCalloutValue: '',\n yCalloutValue: '',\n };\n this._onLeave = this._onLeave.bind(this);\n this._onBarLeave = this._onBarLeave.bind(this);\n this._calloutId = getId('callout');\n }\n\n public render(): JSX.Element {\n const { data, theme, culture } = this.props;\n this._adjustProps();\n const { palette } = theme!;\n const legends = this._getLegendData(data!, this.props.hideRatio!, palette);\n const { isCalloutVisible } = this.state;\n\n this._classNames = getClassNames(this.props.styles!, {\n legendColor: this.state.color,\n theme: theme!,\n });\n\n const legendName = this.state.xCalloutValue ? this.state.xCalloutValue : this.state.selectedLegendTitle;\n const calloutYVal = this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard;\n\n const bars: JSX.Element[] = data!.map((singleChartData: IChartProps, index: number) => {\n const singleChartBars = this._createBarsAndLegends(\n singleChartData!,\n this.props.barHeight!,\n palette,\n this.props.hideRatio![index],\n this.props.hideDenominator![index],\n this.props.href,\n );\n return <div key={index}>{singleChartBars}</div>;\n });\n\n return (\n <div className={this._classNames.root} onMouseLeave={this._handleChartMouseLeave}>\n {bars}\n {!this.props.hideLegend && <div className={this._classNames.legendContainer}>{legends}</div>}\n <Callout\n gapSpace={15}\n isBeakVisible={false}\n target={this.state.refSelected}\n setInitialFocus={true}\n hidden={!(!this.props.hideTooltip && isCalloutVisible)}\n directionalHint={DirectionalHint.topRightEdge}\n id={this._calloutId}\n onDismiss={this._closeCallout}\n preventDismissOnLostFocus={true}\n {...this.props.calloutProps!}\n {...this._getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false)}\n >\n <>\n {this.props.onRenderCalloutPerDataPoint ? (\n this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n ) : (\n <ChartHoverCard Legend={legendName} YValue={calloutYVal} color={this.state.color} culture={culture} />\n )}\n </>\n </Callout>\n </div>\n );\n }\n\n private _createBarsAndLegends(\n data: IChartProps,\n barHeight: number,\n palette: IPalette,\n hideRatio: boolean,\n hideDenominator: boolean,\n href?: string,\n ): JSX.Element {\n const { culture } = this.props;\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n // calculating starting point of each bar and it's range\n const startingPoint: number[] = [];\n const total = data.chartData!.reduce(\n (acc: number, point: IChartDataPoint) => acc + (point.data ? point.data : 0),\n 0,\n );\n\n let prevPosition = 0;\n let value = 0;\n\n const bars = data.chartData!.map((point: IChartDataPoint, index: number) => {\n const color: string = point.color\n ? point.color\n : point.placeHolder\n ? palette.neutralTertiaryAlt\n : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const pointData = point.data ? point.data : 0;\n if (index > 0) {\n prevPosition += value;\n }\n value = (pointData / total) * 100 ? (pointData / total) * 100 : 0;\n\n startingPoint.push(prevPosition);\n\n const styles = this.props.styles;\n let shouldHighlight = true;\n if (this.state.isLegendHovered || this.state.isLegendSelected) {\n shouldHighlight = this.state.selectedLegendTitle === point.legend;\n }\n\n this._classNames = getClassNames(styles!, {\n theme: this.props.theme!,\n shouldHighlight: shouldHighlight,\n href: href,\n });\n\n if (value < 1) {\n return <React.Fragment key={index}> </React.Fragment>;\n }\n\n return (\n <g\n key={index}\n className={point.placeHolder ? this._classNames.placeHolderOnHover : this._classNames.opacityChangeOnHover}\n ref={(e: SVGGElement) => {\n this._refCallback(e, point.legend!);\n }}\n data-is-focusable={!this.props.hideTooltip}\n onFocus={this._onBarFocus.bind(this, pointData, color, point)}\n onBlur={this._onBarLeave}\n aria-labelledby={this._calloutId}\n role=\"img\"\n aria-label=\"Multi stacked bar chart\"\n onMouseOver={point.placeHolder ? undefined : this._onBarHover.bind(this, pointData, color, point)}\n onMouseMove={point.placeHolder ? undefined : this._onBarHover.bind(this, pointData, color, point)}\n onMouseLeave={point.placeHolder ? undefined : this._onBarLeave}\n onClick={href ? (point.placeHolder ? undefined : this._redirectToUrl.bind(this, href)) : point.onClick}\n >\n <rect key={index} x={startingPoint[index] + '%'} y={0} width={value + '%'} height={barHeight} fill={color} />\n </g>\n );\n });\n if (data.chartData!.length === 0) {\n bars.push(\n <g key={0} className={this._classNames.noData} onClick={this._redirectToUrl.bind(this, href)}>\n <rect key={0} x={'0%'} y={0} width={'100%'} height={barHeight} fill={palette.neutralTertiaryAlt} />\n </g>,\n );\n }\n if (total === 0) {\n bars.push(\n <g key={'empty'} className={this._classNames.noData} onClick={this._redirectToUrl.bind(this, href)}>\n <rect key={0} x={'0%'} y={0} width={'100%'} height={barHeight} fill={palette.neutralTertiaryAlt} />\n </g>,\n );\n }\n const hideNumber = hideRatio === undefined ? false : hideRatio;\n const showRatio = !hideNumber && data!.chartData!.length === 2;\n const showNumber = !hideNumber && data!.chartData!.length === 1;\n const getChartData = () => convertToLocaleString(data!.chartData![0].data ? data!.chartData![0].data : 0, culture);\n return (\n <div className={this._classNames.singleChartRoot}>\n <FocusZone direction={FocusZoneDirection.horizontal}>\n <div className={this._classNames.chartTitle}>\n {data!.chartTitle && (\n <div {...this._getAccessibleDataObject(data!.chartTitleAccessibilityData, culture)}>\n <strong>{data!.chartTitle}</strong>\n </div>\n )}\n {showRatio && (\n <div {...this._getAccessibleDataObject(data!.chartDataAccessibilityData)}>\n <strong>{getChartData()}</strong>\n {!hideDenominator && <span>/{convertToLocaleString(total, culture)}</span>}\n </div>\n )}\n {showNumber && (\n <div {...this._getAccessibleDataObject(data!.chartDataAccessibilityData)}>\n <strong>{getChartData()}</strong>\n </div>\n )}\n </div>\n </FocusZone>\n <FocusZone direction={FocusZoneDirection.horizontal}>\n <div>\n <svg className={this._classNames.chart} aria-label={data?.chartTitle}>\n {bars}\n </svg>\n </div>\n </FocusZone>\n </div>\n );\n }\n\n private _onBarFocus(pointData: number, color: string, point: IChartDataPoint): void {\n if (\n this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend!)\n ) {\n this.state.refArray.forEach((obj: IRefArrayData) => {\n if (obj.legendText === point.legend!) {\n this.setState({\n refSelected: obj.refElement,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend!,\n dataForHoverCard: pointData,\n color: color,\n xCalloutValue: point.xAxisCalloutData!,\n yCalloutValue: point.yAxisCalloutData!,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData!,\n });\n }\n });\n }\n }\n\n private _refCallback(element: SVGGElement, legendTitle: string): void {\n this.state.refArray.push({ legendText: legendTitle, refElement: element });\n }\n\n private _adjustProps = (): void => {\n const { theme, className, styles, width, barHeight } = this.props;\n this._classNames = getClassNames(styles!, {\n legendColor: this.state.color,\n theme: theme!,\n width: width,\n className,\n barHeight: barHeight,\n });\n };\n\n private _onHover(customMessage: string): void {\n if (this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: true,\n selectedLegendTitle: customMessage,\n });\n }\n }\n\n private _getLegendData = (data: IChartProps[], hideRatio: boolean[], palette: IPalette): JSX.Element => {\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n data.forEach((singleChartData: IChartProps, index: number) => {\n const validChartData = singleChartData.chartData!.filter((_: IChartDataPoint) => !_.placeHolder);\n if (validChartData!.length < 3) {\n const hideNumber = hideRatio[index] === undefined ? false : hideRatio[index];\n if (hideNumber) {\n validChartData!.forEach((point: IChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === point.legend! && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: ILegend = {\n title: point.legend!,\n color: color,\n action: () => {\n this._onClick(point.legend!);\n },\n hoverAction: () => {\n this._onHover(point.legend!);\n },\n onMouseOutAction: (isLegendSelected?: boolean) => {\n this._onLeave(isLegendSelected);\n },\n };\n actions.push(legend);\n });\n }\n } else {\n validChartData!.forEach((point: IChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === point.legend! && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: ILegend = {\n title: point.legend!,\n color: color,\n action: () => {\n this._onClick(point.legend!);\n },\n hoverAction: () => {\n this._onHover(point.legend!);\n },\n onMouseOutAction: (isLegendSelected?: boolean) => {\n this._onLeave(isLegendSelected);\n },\n };\n actions.push(legend);\n });\n }\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n };\n\n private _onClick(customMessage: string): void {\n if (this.state.isLegendSelected) {\n if (this.state.selectedLegendTitle === customMessage) {\n this.setState({\n isLegendSelected: false,\n selectedLegendTitle: customMessage,\n });\n } else {\n this.setState({\n selectedLegendTitle: customMessage,\n });\n }\n } else {\n this.setState({\n isLegendSelected: true,\n selectedLegendTitle: customMessage,\n });\n }\n }\n\n private _onLeave(isLegendFocused?: boolean): void {\n if (!!isLegendFocused || this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: false,\n selectedLegendTitle: '',\n isLegendSelected: isLegendFocused ? false : this.state.isLegendSelected,\n });\n }\n }\n\n private _onBarHover(\n pointData: number,\n color: string,\n point: IChartDataPoint,\n mouseEvent: React.MouseEvent<SVGPathElement>,\n ): void {\n mouseEvent.persist();\n\n if (\n (this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend!)) &&\n this._calloutAnchorPoint !== point\n ) {\n this._calloutAnchorPoint = point;\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend!,\n dataForHoverCard: pointData,\n color: color,\n xCalloutValue: point.xAxisCalloutData!,\n yCalloutValue: point.yAxisCalloutData!,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData!,\n });\n }\n }\n\n private _onBarLeave(): void {\n /**/\n }\n\n private _handleChartMouseLeave = () => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _redirectToUrl(href: string | undefined): void {\n href ? (window.location.href = href) : '';\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAccessibleDataObject = (\n accessibleData?: IAccessibilityProps,\n role: string = 'text',\n isDataFocusable: boolean = true,\n ) => {\n accessibleData = accessibleData ?? {};\n return {\n role,\n 'data-is-focusable': isDataFocusable,\n 'aria-label': accessibleData!.ariaLabel,\n 'aria-labelledby': accessibleData!.ariaLabelledBy,\n 'aria-describedby': accessibleData!.ariaDescribedBy,\n };\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"MultiStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/StackedBarChart/MultiStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNamesFunction, getId } from '@fluentui/react/lib/Utilities';\nimport { IProcessedStyleSet, IPalette } from '@fluentui/react/lib/Styling';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n IChartDataPoint,\n IChartProps,\n IMultiStackedBarChartProps,\n IMultiStackedBarChartStyles,\n IMultiStackedBarChartStyleProps,\n} from './index';\nimport { Callout, DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { ChartHoverCard, convertToLocaleString } from '../../utilities/index';\n\nconst getClassNames = classNamesFunction<IMultiStackedBarChartStyleProps, IMultiStackedBarChartStyles>();\n\nexport interface IRefArrayData {\n legendText?: string;\n refElement?: SVGGElement;\n}\n\nexport interface IMultiStackedBarChartState {\n isCalloutVisible: boolean;\n refArray: IRefArrayData[];\n selectedLegendTitle: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n refSelected: any;\n dataForHoverCard: number;\n color: string;\n isLegendHovered: boolean;\n isLegendSelected: boolean;\n xCalloutValue?: string;\n yCalloutValue?: string;\n dataPointCalloutProps?: IChartDataPoint;\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport class MultiStackedBarChartBase extends React.Component<IMultiStackedBarChartProps, IMultiStackedBarChartState> {\n public static defaultProps: Partial<IMultiStackedBarChartProps> = {\n barHeight: 16,\n hideRatio: [],\n hideDenominator: [],\n };\n\n private _classNames: IProcessedStyleSet<IMultiStackedBarChartStyles>;\n private _calloutId: string;\n private _calloutAnchorPoint: IChartDataPoint | null;\n\n public constructor(props: IMultiStackedBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n refArray: [],\n selectedLegendTitle: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n isLegendHovered: false,\n isLegendSelected: false,\n xCalloutValue: '',\n yCalloutValue: '',\n };\n this._onLeave = this._onLeave.bind(this);\n this._onBarLeave = this._onBarLeave.bind(this);\n this._calloutId = getId('callout');\n }\n\n public render(): JSX.Element {\n const { data, theme, culture } = this.props;\n this._adjustProps();\n const { palette } = theme!;\n const legends = this._getLegendData(data!, this.props.hideRatio!, palette);\n const { isCalloutVisible } = this.state;\n\n this._classNames = getClassNames(this.props.styles!, {\n legendColor: this.state.color,\n theme: theme!,\n });\n\n const legendName = this.state.xCalloutValue ? this.state.xCalloutValue : this.state.selectedLegendTitle;\n const calloutYVal = this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard;\n\n const bars: JSX.Element[] = data!.map((singleChartData: IChartProps, index: number) => {\n const singleChartBars = this._createBarsAndLegends(\n singleChartData!,\n this.props.barHeight!,\n palette,\n this.props.hideRatio![index],\n this.props.hideDenominator![index],\n this.props.href,\n );\n return <div key={index}>{singleChartBars}</div>;\n });\n\n return (\n <div className={this._classNames.root} onMouseLeave={this._handleChartMouseLeave}>\n {bars}\n {!this.props.hideLegend && <div className={this._classNames.legendContainer}>{legends}</div>}\n <Callout\n gapSpace={15}\n isBeakVisible={false}\n target={this.state.refSelected}\n setInitialFocus={true}\n hidden={!(!this.props.hideTooltip && isCalloutVisible)}\n directionalHint={DirectionalHint.topAutoEdge}\n id={this._calloutId}\n onDismiss={this._closeCallout}\n preventDismissOnLostFocus={true}\n {...this.props.calloutProps!}\n {...this._getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false)}\n >\n <>\n {this.props.onRenderCalloutPerDataPoint ? (\n this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n ) : (\n <ChartHoverCard Legend={legendName} YValue={calloutYVal} color={this.state.color} culture={culture} />\n )}\n </>\n </Callout>\n </div>\n );\n }\n\n private _createBarsAndLegends(\n data: IChartProps,\n barHeight: number,\n palette: IPalette,\n hideRatio: boolean,\n hideDenominator: boolean,\n href?: string,\n ): JSX.Element {\n const { culture } = this.props;\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n // calculating starting point of each bar and it's range\n const startingPoint: number[] = [];\n const total = data.chartData!.reduce(\n (acc: number, point: IChartDataPoint) => acc + (point.data ? point.data : 0),\n 0,\n );\n\n let prevPosition = 0;\n let value = 0;\n\n const bars = data.chartData!.map((point: IChartDataPoint, index: number) => {\n const color: string = point.color\n ? point.color\n : point.placeHolder\n ? palette.neutralTertiaryAlt\n : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const pointData = point.data ? point.data : 0;\n if (index > 0) {\n prevPosition += value;\n }\n value = (pointData / total) * 100 ? (pointData / total) * 100 : 0;\n\n startingPoint.push(prevPosition);\n\n const styles = this.props.styles;\n let shouldHighlight = true;\n if (this.state.isLegendHovered || this.state.isLegendSelected) {\n shouldHighlight = this.state.selectedLegendTitle === point.legend;\n }\n\n this._classNames = getClassNames(styles!, {\n theme: this.props.theme!,\n shouldHighlight: shouldHighlight,\n href: href,\n });\n\n if (value < 1) {\n return <React.Fragment key={index}> </React.Fragment>;\n }\n\n return (\n <g\n key={index}\n className={point.placeHolder ? this._classNames.placeHolderOnHover : this._classNames.opacityChangeOnHover}\n ref={(e: SVGGElement) => {\n this._refCallback(e, point.legend!);\n }}\n data-is-focusable={!this.props.hideTooltip}\n onFocus={this._onBarFocus.bind(this, pointData, color, point)}\n onBlur={this._onBarLeave}\n aria-labelledby={this._calloutId}\n role=\"img\"\n aria-label=\"Multi stacked bar chart\"\n onMouseOver={point.placeHolder ? undefined : this._onBarHover.bind(this, pointData, color, point)}\n onMouseMove={point.placeHolder ? undefined : this._onBarHover.bind(this, pointData, color, point)}\n onMouseLeave={point.placeHolder ? undefined : this._onBarLeave}\n onClick={href ? (point.placeHolder ? undefined : this._redirectToUrl.bind(this, href)) : point.onClick}\n >\n <rect key={index} x={startingPoint[index] + '%'} y={0} width={value + '%'} height={barHeight} fill={color} />\n </g>\n );\n });\n if (data.chartData!.length === 0) {\n bars.push(\n <g key={0} className={this._classNames.noData} onClick={this._redirectToUrl.bind(this, href)}>\n <rect key={0} x={'0%'} y={0} width={'100%'} height={barHeight} fill={palette.neutralTertiaryAlt} />\n </g>,\n );\n }\n if (total === 0) {\n bars.push(\n <g key={'empty'} className={this._classNames.noData} onClick={this._redirectToUrl.bind(this, href)}>\n <rect key={0} x={'0%'} y={0} width={'100%'} height={barHeight} fill={palette.neutralTertiaryAlt} />\n </g>,\n );\n }\n const hideNumber = hideRatio === undefined ? false : hideRatio;\n const showRatio = !hideNumber && data!.chartData!.length === 2;\n const showNumber = !hideNumber && data!.chartData!.length === 1;\n const getChartData = () => convertToLocaleString(data!.chartData![0].data ? data!.chartData![0].data : 0, culture);\n return (\n <div className={this._classNames.singleChartRoot}>\n <FocusZone direction={FocusZoneDirection.horizontal}>\n <div className={this._classNames.chartTitle}>\n {data!.chartTitle && (\n <div {...this._getAccessibleDataObject(data!.chartTitleAccessibilityData, culture)}>\n <strong>{data!.chartTitle}</strong>\n </div>\n )}\n {showRatio && (\n <div {...this._getAccessibleDataObject(data!.chartDataAccessibilityData)}>\n <strong>{getChartData()}</strong>\n {!hideDenominator && <span>/{convertToLocaleString(total, culture)}</span>}\n </div>\n )}\n {showNumber && (\n <div {...this._getAccessibleDataObject(data!.chartDataAccessibilityData)}>\n <strong>{getChartData()}</strong>\n </div>\n )}\n </div>\n </FocusZone>\n <FocusZone direction={FocusZoneDirection.horizontal}>\n <div>\n <svg className={this._classNames.chart} aria-label={data?.chartTitle}>\n {bars}\n </svg>\n </div>\n </FocusZone>\n </div>\n );\n }\n\n private _onBarFocus(pointData: number, color: string, point: IChartDataPoint): void {\n if (\n this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend!)\n ) {\n this.state.refArray.forEach((obj: IRefArrayData) => {\n if (obj.legendText === point.legend!) {\n this.setState({\n refSelected: obj.refElement,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend!,\n dataForHoverCard: pointData,\n color: color,\n xCalloutValue: point.xAxisCalloutData!,\n yCalloutValue: point.yAxisCalloutData!,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData!,\n });\n }\n });\n }\n }\n\n private _refCallback(element: SVGGElement, legendTitle: string): void {\n this.state.refArray.push({ legendText: legendTitle, refElement: element });\n }\n\n private _adjustProps = (): void => {\n const { theme, className, styles, width, barHeight } = this.props;\n this._classNames = getClassNames(styles!, {\n legendColor: this.state.color,\n theme: theme!,\n width: width,\n className,\n barHeight: barHeight,\n });\n };\n\n private _onHover(customMessage: string): void {\n if (this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: true,\n selectedLegendTitle: customMessage,\n });\n }\n }\n\n private _getLegendData = (data: IChartProps[], hideRatio: boolean[], palette: IPalette): JSX.Element => {\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n data.forEach((singleChartData: IChartProps, index: number) => {\n const validChartData = singleChartData.chartData!.filter((_: IChartDataPoint) => !_.placeHolder);\n if (validChartData!.length < 3) {\n const hideNumber = hideRatio[index] === undefined ? false : hideRatio[index];\n if (hideNumber) {\n validChartData!.forEach((point: IChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === point.legend! && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: ILegend = {\n title: point.legend!,\n color: color,\n action: () => {\n this._onClick(point.legend!);\n },\n hoverAction: () => {\n this._onHover(point.legend!);\n },\n onMouseOutAction: (isLegendSelected?: boolean) => {\n this._onLeave(isLegendSelected);\n },\n };\n actions.push(legend);\n });\n }\n } else {\n validChartData!.forEach((point: IChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === point.legend! && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n const legend: ILegend = {\n title: point.legend!,\n color: color,\n action: () => {\n this._onClick(point.legend!);\n },\n hoverAction: () => {\n this._onHover(point.legend!);\n },\n onMouseOutAction: (isLegendSelected?: boolean) => {\n this._onLeave(isLegendSelected);\n },\n };\n actions.push(legend);\n });\n }\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n };\n\n private _onClick(customMessage: string): void {\n if (this.state.isLegendSelected) {\n if (this.state.selectedLegendTitle === customMessage) {\n this.setState({\n isLegendSelected: false,\n selectedLegendTitle: customMessage,\n });\n } else {\n this.setState({\n selectedLegendTitle: customMessage,\n });\n }\n } else {\n this.setState({\n isLegendSelected: true,\n selectedLegendTitle: customMessage,\n });\n }\n }\n\n private _onLeave(isLegendFocused?: boolean): void {\n if (!!isLegendFocused || this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: false,\n selectedLegendTitle: '',\n isLegendSelected: isLegendFocused ? false : this.state.isLegendSelected,\n });\n }\n }\n\n private _onBarHover(\n pointData: number,\n color: string,\n point: IChartDataPoint,\n mouseEvent: React.MouseEvent<SVGPathElement>,\n ): void {\n mouseEvent.persist();\n\n if (\n (this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend!)) &&\n this._calloutAnchorPoint !== point\n ) {\n this._calloutAnchorPoint = point;\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend!,\n dataForHoverCard: pointData,\n color: color,\n xCalloutValue: point.xAxisCalloutData!,\n yCalloutValue: point.yAxisCalloutData!,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData!,\n });\n }\n }\n\n private _onBarLeave(): void {\n /**/\n }\n\n private _handleChartMouseLeave = () => {\n this._calloutAnchorPoint = null;\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _redirectToUrl(href: string | undefined): void {\n href ? (window.location.href = href) : '';\n }\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAccessibleDataObject = (\n accessibleData?: IAccessibilityProps,\n role: string = 'text',\n isDataFocusable: boolean = true,\n ) => {\n accessibleData = accessibleData ?? {};\n return {\n role,\n 'data-is-focusable': isDataFocusable,\n 'aria-label': accessibleData!.ariaLabel,\n 'aria-labelledby': accessibleData!.ariaLabelledBy,\n 'aria-describedby': accessibleData!.ariaDescribedBy,\n };\n };\n}\n"]}
|
|
@@ -105,7 +105,7 @@ var StackedBarChartBase = /** @class */ (function (_super) {
|
|
|
105
105
|
React.createElement("div", null,
|
|
106
106
|
React.createElement("svg", { className: this._classNames.chart, "aria-label": data === null || data === void 0 ? void 0 : data.chartTitle },
|
|
107
107
|
React.createElement("g", null, bars[0]),
|
|
108
|
-
React.createElement(Callout, __assign({ gapSpace: 15, isBeakVisible: false, target: this.state.refSelected, setInitialFocus: true, hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible), directionalHint: DirectionalHint.
|
|
108
|
+
React.createElement(Callout, __assign({ gapSpace: 15, isBeakVisible: false, target: this.state.refSelected, setInitialFocus: true, hidden: !(!this.props.hideTooltip && this.state.isCalloutVisible), directionalHint: DirectionalHint.topAutoEdge, id: this._calloutId, onDismiss: this._closeCallout, preventDismissOnLostFocus: true }, this.props.calloutProps, this._getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false)),
|
|
109
109
|
React.createElement(React.Fragment, null, this.props.onRenderCalloutPerDataPoint ? (this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)) : (React.createElement(ChartHoverCard, { Legend: this.state.xCalloutValue ? this.state.xCalloutValue : this.state.selectedLegendTitle, YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard, color: this.state.color, culture: culture }))))))),
|
|
110
110
|
showLegend && React.createElement("div", { className: this._classNames.legendContainer }, bars[1])));
|
|
111
111
|
};
|