@fluentui/react-charting 5.6.6 → 5.6.7
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 +22 -1
- package/CHANGELOG.md +12 -2
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/lib/components/CommonComponents/CartesianChart.base.js +1 -2
- package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.base.js +2 -1
- package/lib/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.base.js +2 -2
- package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib/components/Legends/Legends.base.js +3 -3
- package/lib/components/Legends/Legends.base.js.map +1 -1
- package/lib/components/LineChart/LineChart.base.js +10 -9
- package/lib/components/LineChart/LineChart.base.js.map +1 -1
- package/lib/components/PieChart/Arc/Arc.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib/utilities/utilities.js +4 -4
- package/lib/utilities/utilities.js.map +1 -1
- package/lib/version.js +1 -1
- package/lib/version.js.map +1 -1
- package/lib-amd/components/CommonComponents/CartesianChart.base.js +1 -2
- package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib-amd/components/DonutChart/Arc/Arc.js.map +1 -1
- package/lib-amd/components/DonutChart/DonutChart.base.js +2 -1
- package/lib-amd/components/DonutChart/DonutChart.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/Legends/Legends.base.js +2 -2
- package/lib-amd/components/Legends/Legends.base.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.base.js +9 -8
- package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-amd/components/PieChart/Arc/Arc.js.map +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/utilities/utilities.js +3 -3
- package/lib-amd/utilities/utilities.js.map +1 -1
- package/lib-amd/version.js +1 -1
- package/lib-amd/version.js.map +1 -1
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +1 -2
- package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
- package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.base.js +2 -1
- package/lib-commonjs/components/DonutChart/DonutChart.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/Legends/Legends.base.js +2 -2
- package/lib-commonjs/components/Legends/Legends.base.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.base.js +9 -8
- package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-commonjs/components/PieChart/Arc/Arc.js.map +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/utilities/utilities.js +3 -3
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/lib-commonjs/version.js +1 -1
- package/lib-commonjs/version.js.map +1 -1
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DonutChart.base.js","sourceRoot":"../src/","sources":["components/DonutChart/DonutChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNamesFunction, getId } from '@fluentui/react/lib/Utilities';\nimport * as scale from 'd3-scale';\nimport { IProcessedStyleSet, IPalette } from '@fluentui/react/lib/Styling';\nimport { Callout, DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { IAccessibilityProps, ChartHoverCard, ILegend, Legends } from '../../index';\nimport { Pie } from './Pie/index';\nimport { IChartDataPoint, IChartProps, IDonutChartProps, IDonutChartStyleProps, IDonutChartStyles } from './index';\nimport { convertToLocaleString, getAccessibleDataObject } from '../../utilities/index';\nconst getClassNames = classNamesFunction<IDonutChartStyleProps, IDonutChartStyles>();\n\nexport interface IDonutChartState {\n showHover?: boolean;\n value?: string | undefined;\n legend?: string | undefined;\n _width?: number | undefined;\n _height?: number | undefined;\n activeLegend?: string;\n color?: string | undefined;\n isLegendSelected?: boolean;\n xCalloutValue?: string;\n yCalloutValue?: string;\n focusedArcId?: string;\n selectedLegend: string;\n dataPointCalloutProps?: IChartDataPoint;\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport class DonutChartBase extends React.Component<IDonutChartProps, IDonutChartState> {\n public static defaultProps: Partial<IDonutChartProps> = {\n innerRadius: 0,\n };\n public _colors: scale.ScaleOrdinal<string, {}>;\n private _classNames: IProcessedStyleSet<IDonutChartStyles>;\n private _rootElem: HTMLElement | null;\n private _uniqText: string;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n private _currentHoverElement: any;\n private _calloutId: string;\n\n public static getDerivedStateFromProps(\n nextProps: Readonly<IDonutChartProps>,\n prevState: Readonly<IDonutChartState>,\n ): Partial<IDonutChartState> | null {\n if (nextProps.height && nextProps.height !== prevState._height && nextProps.width !== prevState._width) {\n const reducedHeight = nextProps.height / 5;\n return { _width: nextProps.width, _height: nextProps.height - reducedHeight };\n }\n return null;\n }\n\n constructor(props: IDonutChartProps) {\n super(props);\n this.state = {\n showHover: false,\n value: '',\n legend: '',\n _width: this.props.width || 200,\n _height: this.props.height || 200,\n activeLegend: '',\n color: '',\n isLegendSelected: false,\n xCalloutValue: '',\n yCalloutValue: '',\n selectedLegend: 'none',\n focusedArcId: '',\n };\n this._hoverCallback = this._hoverCallback.bind(this);\n this._focusCallback = this._focusCallback.bind(this);\n this._hoverLeave = this._hoverLeave.bind(this);\n this._calloutId = getId('callout');\n this._uniqText = getId('_Pie_');\n }\n public componentDidMount(): void {\n /* 80% Height to the Chart\n 20% Height to the Legends\n */\n const reducedHeight = this._rootElem && this._rootElem.offsetHeight / 5;\n this.setState({\n _width: (this._rootElem && this._rootElem!.offsetWidth)!,\n _height: (this._rootElem && this._rootElem!.offsetHeight - reducedHeight!)!,\n });\n }\n\n public render(): JSX.Element {\n const { data, hideLegend = false } = this.props;\n const { palette } = this.props.theme!;\n\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width!,\n height: this.state._height!,\n color: this.state.color!,\n className: this.props.className!,\n });\n\n const legendBars = this._createLegends(data!, palette);\n const outerRadius = Math.min(this.state._width!, this.state._height!) / 2;\n const chartData = data && data.chartData;\n const valueInsideDonut = this._valueInsideDonut(this.props.valueInsideDonut!, chartData!);\n return (\n <div className={this._classNames.root} ref={(rootElem: HTMLElement | null) => (this._rootElem = rootElem)}>\n <FocusZone direction={FocusZoneDirection.horizontal} isCircularNavigation={true}>\n <div>\n <svg\n className={this._classNames.chart}\n aria-label={data?.chartTitle}\n ref={(node: SVGElement | null) => this._setViewBox(node)}\n >\n <Pie\n width={this.state._width!}\n height={this.state._height!}\n outerRadius={outerRadius}\n innerRadius={this.props.innerRadius!}\n data={chartData!}\n onFocusCallback={this._focusCallback}\n hoverOnCallback={this._hoverCallback}\n hoverLeaveCallback={this._hoverLeave}\n uniqText={this._uniqText}\n onBlurCallback={this._onBlur}\n activeArc={this.state.activeLegend}\n focusedArcId={this.state.focusedArcId || ''}\n href={this.props.href!}\n calloutId={this._calloutId}\n valueInsideDonut={this._toLocaleString(valueInsideDonut)}\n theme={this.props.theme!}\n />\n </svg>\n </div>\n </FocusZone>\n <Callout\n target={this._currentHoverElement}\n alignTargetEdge={true}\n isBeakVisible={false}\n directionalHint={DirectionalHint.bottomRightEdge}\n gapSpace={15}\n hidden={!(!this.props.hideTooltip && this.state.showHover)}\n id={this._calloutId}\n onDismiss={this._closeCallout}\n preventDismissOnLostFocus={true}\n {...this.props.calloutProps!}\n {...getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false)}\n >\n {this.props.onRenderCalloutPerDataPoint ? (\n this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps!)\n ) : (\n <ChartHoverCard\n Legend={this.state.xCalloutValue ? this.state.xCalloutValue : this.state.legend}\n YValue={this.state.yCalloutValue ? this.state.yCalloutValue : this.state.value}\n color={this.state.color}\n culture={this.props.culture}\n />\n )}\n </Callout>\n {!hideLegend && <div className={this._classNames.legendContainer}>{legendBars}</div>}\n </div>\n );\n }\n\n private _closeCallout = () => {\n this.setState({\n showHover: false,\n });\n };\n\n private _setViewBox(node: SVGElement | null): void {\n if (node === null) {\n return;\n }\n\n const widthVal = node.parentElement ? node.parentElement.clientWidth : this.state._width;\n\n const heightVal =\n node.parentElement && node.parentElement?.offsetHeight > this.state._height!\n ? node.parentElement?.offsetHeight\n : this.state._height;\n const viewbox = `0 0 ${widthVal!} ${heightVal!}`;\n node.setAttribute('viewBox', viewbox);\n }\n private _createLegends(data: IChartProps, palette: IPalette): JSX.Element {\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const legendDataItems =\n data &&\n data!.chartData!.map((point: IChartDataPoint, index: number) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: point.legend!,\n color: color,\n action: () => {\n if (this.state.isLegendSelected) {\n if (this.state.activeLegend !== point.legend || this.state.activeLegend === '') {\n this.setState({ activeLegend: point.legend!, isLegendSelected: true });\n } else {\n this.setState({ activeLegend: point.legend });\n }\n } else {\n this.setState({ activeLegend: point.legend!, isLegendSelected: true });\n }\n },\n hoverAction: () => {\n if (this.state.activeLegend !== point.legend || this.state.activeLegend === '') {\n this.setState({ activeLegend: point.legend! });\n } else {\n this.setState({ activeLegend: point.legend });\n }\n },\n onMouseOutAction: () => {\n this.setState({\n showHover: false,\n activeLegend: '',\n });\n },\n };\n return legend;\n });\n const legends = (\n <Legends\n legends={legendDataItems}\n centerLegends\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n selectedLegend={this.state.selectedLegend}\n {...this.props.legendProps}\n />\n );\n return legends;\n }\n\n private _focusCallback = (data: IChartDataPoint, id: string, element: SVGPathElement): void => {\n this._currentHoverElement = element;\n this.setState({\n showHover: true,\n value: data.data!.toString(),\n legend: data.legend,\n activeLegend: data.legend,\n color: data.color!,\n selectedLegend: data.legend!,\n xCalloutValue: data.xAxisCalloutData!,\n yCalloutValue: data.yAxisCalloutData!,\n focusedArcId: id,\n dataPointCalloutProps: data,\n callOutAccessibilityData: data.callOutAccessibilityData!,\n });\n };\n\n private _hoverCallback = (data: IChartDataPoint, e: React.MouseEvent<SVGPathElement>): void => {\n this._currentHoverElement = e;\n this.setState({\n showHover: true,\n value: data.data!.toString(),\n selectedLegend: data.legend!,\n legend: data.legend,\n color: data.color!,\n xCalloutValue: data.xAxisCalloutData!,\n yCalloutValue: data.yAxisCalloutData!,\n activeLegend: data.legend,\n dataPointCalloutProps: data,\n callOutAccessibilityData: data.callOutAccessibilityData!,\n });\n };\n private _onBlur = (): void => {\n this.setState({ showHover: false, focusedArcId: '', activeLegend: '', selectedLegend: 'none' });\n };\n\n private _hoverLeave(): void {\n this.setState({ showHover: false, activeLegend: '', selectedLegend: 'none', focusedArcId: '' });\n }\n\n private _valueInsideDonut(valueInsideDonut: string | number | undefined, data: IChartDataPoint[]) {\n if (valueInsideDonut !== undefined && this.state.activeLegend !== '' && !this.state.showHover) {\n let legendValue = valueInsideDonut;\n data!.map((point: IChartDataPoint, index: number) => {\n if (point.legend === this.state.activeLegend) {\n legendValue = point.yAxisCalloutData ? point.yAxisCalloutData : point.data!;\n }\n return;\n });\n return legendValue;\n } else {\n return valueInsideDonut;\n }\n }\n\n private _toLocaleString(data: string | number | undefined) {\n const localeString = convertToLocaleString(data, this.props.culture);\n if (!localeString) {\n return data;\n }\n return localeString?.toString();\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"DonutChart.base.js","sourceRoot":"../src/","sources":["components/DonutChart/DonutChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { classNamesFunction, getId } from '@fluentui/react/lib/Utilities';\nimport * as scale from 'd3-scale';\nimport { IProcessedStyleSet, IPalette } from '@fluentui/react/lib/Styling';\nimport { Callout, DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport { IAccessibilityProps, ChartHoverCard, ILegend, Legends } from '../../index';\nimport { Pie } from './Pie/index';\nimport { IChartDataPoint, IChartProps, IDonutChartProps, IDonutChartStyleProps, IDonutChartStyles } from './index';\nimport { convertToLocaleString, getAccessibleDataObject } from '../../utilities/index';\nconst getClassNames = classNamesFunction<IDonutChartStyleProps, IDonutChartStyles>();\n\nexport interface IDonutChartState {\n showHover?: boolean;\n value?: string | undefined;\n legend?: string | undefined;\n _width?: number | undefined;\n _height?: number | undefined;\n activeLegend?: string;\n color?: string | undefined;\n isLegendSelected?: boolean;\n xCalloutValue?: string;\n yCalloutValue?: string;\n focusedArcId?: string;\n selectedLegend: string;\n dataPointCalloutProps?: IChartDataPoint;\n callOutAccessibilityData?: IAccessibilityProps;\n}\n\nexport class DonutChartBase extends React.Component<IDonutChartProps, IDonutChartState> {\n public static defaultProps: Partial<IDonutChartProps> = {\n innerRadius: 0,\n };\n public _colors: scale.ScaleOrdinal<string, {}>;\n private _classNames: IProcessedStyleSet<IDonutChartStyles>;\n private _rootElem: HTMLElement | null;\n private _uniqText: string;\n /* eslint-disable @typescript-eslint/no-explicit-any */\n private _currentHoverElement: any;\n private _calloutId: string;\n\n public static getDerivedStateFromProps(\n nextProps: Readonly<IDonutChartProps>,\n prevState: Readonly<IDonutChartState>,\n ): Partial<IDonutChartState> | null {\n if (nextProps.height && nextProps.height !== prevState._height && nextProps.width !== prevState._width) {\n const reducedHeight = nextProps.height / 5;\n return { _width: nextProps.width, _height: nextProps.height - reducedHeight };\n }\n return null;\n }\n\n constructor(props: IDonutChartProps) {\n super(props);\n this.state = {\n showHover: false,\n value: '',\n legend: '',\n _width: this.props.width || 200,\n _height: this.props.height || 200,\n activeLegend: '',\n color: '',\n isLegendSelected: false,\n xCalloutValue: '',\n yCalloutValue: '',\n selectedLegend: 'none',\n focusedArcId: '',\n };\n this._hoverCallback = this._hoverCallback.bind(this);\n this._focusCallback = this._focusCallback.bind(this);\n this._hoverLeave = this._hoverLeave.bind(this);\n this._calloutId = getId('callout');\n this._uniqText = getId('_Pie_');\n }\n public componentDidMount(): void {\n /* 80% Height to the Chart\n 20% Height to the Legends\n */\n const reducedHeight = this._rootElem && this._rootElem.offsetHeight / 5;\n this.setState({\n _width: (this._rootElem && this._rootElem!.offsetWidth)!,\n _height: (this._rootElem && this._rootElem!.offsetHeight - reducedHeight!)!,\n });\n }\n\n public render(): JSX.Element {\n const { data, hideLegend = false } = this.props;\n const { palette } = this.props.theme!;\n\n this._classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n width: this.state._width!,\n height: this.state._height!,\n color: this.state.color!,\n className: this.props.className!,\n });\n\n const legendBars = this._createLegends(data!, palette);\n const outerRadius = Math.min(this.state._width!, this.state._height!) / 2;\n const chartData = data && data.chartData;\n const valueInsideDonut = this._valueInsideDonut(this.props.valueInsideDonut!, chartData!);\n return (\n <div className={this._classNames.root} ref={(rootElem: HTMLElement | null) => (this._rootElem = rootElem)}>\n <FocusZone direction={FocusZoneDirection.horizontal} isCircularNavigation={true}>\n <div>\n <svg\n className={this._classNames.chart}\n aria-label={data?.chartTitle}\n ref={(node: SVGElement | null) => this._setViewBox(node)}\n >\n <Pie\n width={this.state._width!}\n height={this.state._height!}\n outerRadius={outerRadius}\n innerRadius={this.props.innerRadius!}\n data={chartData!}\n onFocusCallback={this._focusCallback}\n hoverOnCallback={this._hoverCallback}\n hoverLeaveCallback={this._hoverLeave}\n uniqText={this._uniqText}\n onBlurCallback={this._onBlur}\n activeArc={this.state.activeLegend}\n focusedArcId={this.state.focusedArcId || ''}\n href={this.props.href!}\n calloutId={this._calloutId}\n valueInsideDonut={this._toLocaleString(valueInsideDonut)}\n theme={this.props.theme!}\n />\n </svg>\n </div>\n </FocusZone>\n <Callout\n target={this._currentHoverElement}\n alignTargetEdge={true}\n isBeakVisible={false}\n directionalHint={DirectionalHint.bottomRightEdge}\n gapSpace={15}\n hidden={!(!this.props.hideTooltip && this.state.showHover)}\n id={this._calloutId}\n onDismiss={this._closeCallout}\n preventDismissOnLostFocus={true}\n {...this.props.calloutProps!}\n {...getAccessibleDataObject(this.state.callOutAccessibilityData, 'text', false)}\n >\n {this.props.onRenderCalloutPerDataPoint ? (\n this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps!)\n ) : (\n <ChartHoverCard\n Legend={this.state.xCalloutValue ? this.state.xCalloutValue : this.state.legend}\n YValue={this.state.yCalloutValue ? this.state.yCalloutValue : this.state.value}\n color={this.state.color}\n culture={this.props.culture}\n />\n )}\n </Callout>\n {!hideLegend && <div className={this._classNames.legendContainer}>{legendBars}</div>}\n </div>\n );\n }\n\n private _closeCallout = () => {\n this.setState({\n showHover: false,\n });\n };\n\n private _setViewBox(node: SVGElement | null): void {\n if (node === null) {\n return;\n }\n\n const widthVal = node.parentElement ? node.parentElement.clientWidth : this.state._width;\n\n const heightVal =\n node.parentElement && node.parentElement?.offsetHeight > this.state._height!\n ? node.parentElement?.offsetHeight\n : this.state._height;\n const viewbox = `0 0 ${widthVal!} ${heightVal!}`;\n node.setAttribute('viewBox', viewbox);\n }\n private _createLegends(data: IChartProps, palette: IPalette): JSX.Element {\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const legendDataItems =\n data &&\n data!.chartData!.map((point: IChartDataPoint, index: number) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n // mapping data to the format Legends component needs\n const legend: ILegend = {\n title: point.legend!,\n color: color,\n action: () => {\n if (this.state.isLegendSelected) {\n if (this.state.activeLegend !== point.legend || this.state.activeLegend === '') {\n this.setState({ activeLegend: point.legend!, isLegendSelected: true });\n } else {\n this.setState({ activeLegend: point.legend });\n }\n } else {\n this.setState({ activeLegend: point.legend!, isLegendSelected: true });\n }\n },\n hoverAction: () => {\n if (this.state.activeLegend !== point.legend || this.state.activeLegend === '') {\n this.setState({ activeLegend: point.legend! });\n } else {\n this.setState({ activeLegend: point.legend });\n }\n },\n onMouseOutAction: () => {\n this.setState({\n showHover: false,\n activeLegend: '',\n });\n },\n };\n return legend;\n });\n const legends = (\n <Legends\n legends={legendDataItems}\n centerLegends\n overflowProps={this.props.legendsOverflowProps}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n selectedLegend={this.state.selectedLegend}\n {...this.props.legendProps}\n />\n );\n return legends;\n }\n\n private _focusCallback = (data: IChartDataPoint, id: string, element: SVGPathElement): void => {\n this._currentHoverElement = element;\n this.setState({\n showHover: true,\n value: data.data!.toString(),\n legend: data.legend,\n activeLegend: data.legend,\n color: data.color!,\n selectedLegend: data.legend!,\n xCalloutValue: data.xAxisCalloutData!,\n yCalloutValue: data.yAxisCalloutData!,\n focusedArcId: id,\n dataPointCalloutProps: data,\n callOutAccessibilityData: data.callOutAccessibilityData!,\n });\n };\n\n private _hoverCallback = (data: IChartDataPoint, e: React.MouseEvent<SVGPathElement>): void => {\n this._currentHoverElement = e;\n this.setState({\n showHover: true,\n value: data.data!.toString(),\n selectedLegend: data.legend!,\n legend: data.legend,\n color: data.color!,\n xCalloutValue: data.xAxisCalloutData!,\n yCalloutValue: data.yAxisCalloutData!,\n activeLegend: data.legend,\n dataPointCalloutProps: data,\n callOutAccessibilityData: data.callOutAccessibilityData!,\n });\n };\n private _onBlur = (): void => {\n this.setState({ showHover: false, focusedArcId: '', activeLegend: '', selectedLegend: 'none' });\n };\n\n private _hoverLeave(): void {\n this.setState({ showHover: false, activeLegend: '', selectedLegend: 'none', focusedArcId: '' });\n }\n\n private _valueInsideDonut(valueInsideDonut: string | number | undefined, data: IChartDataPoint[]) {\n if (valueInsideDonut !== undefined && this.state.activeLegend !== '' && !this.state.showHover) {\n let legendValue = valueInsideDonut;\n data!.map((point: IChartDataPoint, index: number) => {\n if (point.legend === this.state.activeLegend) {\n legendValue = point.yAxisCalloutData ? point.yAxisCalloutData : point.data!;\n }\n return;\n });\n return legendValue;\n } else {\n return valueInsideDonut;\n }\n }\n\n private _toLocaleString(data: string | number | undefined) {\n const localeString = convertToLocaleString(data, this.props.culture);\n if (!localeString) {\n return data;\n }\n return localeString?.toString();\n }\n}\n"]}
|
|
@@ -261,7 +261,7 @@ define(["require", "exports", "tslib", "../../index", "d3-scale", "@fluentui/rea
|
|
|
261
261
|
* array are noting but x data points associated to the property y
|
|
262
262
|
*/
|
|
263
263
|
if (yPoints[posY]) {
|
|
264
|
-
yPoints[posY] = tslib_1.
|
|
264
|
+
yPoints[posY] = tslib_1.__spreadArray(tslib_1.__spreadArray([], yPoints[posY]), [item]);
|
|
265
265
|
}
|
|
266
266
|
else {
|
|
267
267
|
yPoints[posY] = [item];
|
|
@@ -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 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 /* 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 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 _onRectBlurOrMouseOut = (): void => {\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 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 /* 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 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 _onRectBlurOrMouseOut = (): void => {\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"]}
|
|
@@ -20,7 +20,7 @@ define(["require", "exports", "tslib", "react", "@fluentui/react/lib/HoverCard",
|
|
|
20
20
|
if (currentdata.primary.length === 0) {
|
|
21
21
|
return;
|
|
22
22
|
}
|
|
23
|
-
var overflow = tslib_1.
|
|
23
|
+
var overflow = tslib_1.__spreadArray(tslib_1.__spreadArray([], currentdata.primary.slice(-1)), currentdata.overflow);
|
|
24
24
|
var primary = currentdata.primary.slice(0, -1);
|
|
25
25
|
return { primary: primary, overflow: overflow };
|
|
26
26
|
};
|
|
@@ -29,7 +29,7 @@ define(["require", "exports", "tslib", "react", "@fluentui/react/lib/HoverCard",
|
|
|
29
29
|
return;
|
|
30
30
|
}
|
|
31
31
|
var overflow = currentdata.overflow.slice(1);
|
|
32
|
-
var primary = tslib_1.
|
|
32
|
+
var primary = tslib_1.__spreadArray(tslib_1.__spreadArray([], currentdata.primary), currentdata.overflow.slice(0, 1));
|
|
33
33
|
return { primary: primary, overflow: overflow };
|
|
34
34
|
};
|
|
35
35
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legends.base.js","sourceRoot":"../src/","sources":["components/Legends/Legends.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport { IContextualMenuItem } from '@fluentui/react/lib/ContextualMenu';\nimport { HoverCard, HoverCardType, IExpandingCardProps } from '@fluentui/react/lib/HoverCard';\nimport { classNamesFunction, find, getNativeProps, buttonProperties } from '@fluentui/react/lib/Utilities';\nimport { ResizeGroup } from '@fluentui/react/lib/ResizeGroup';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { OverflowSet, IOverflowSetItemProps } from '@fluentui/react/lib/OverflowSet';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ILegend,\n ILegendsProps,\n LegendShape,\n ILegendsStyles,\n ILegendStyleProps,\n ILegendOverflowData,\n} from './Legends.types';\nimport { Shape } from './shape';\n\nimport { silceOrAppendToArray } from '../../utilities/utilities';\n\nconst getClassNames = classNamesFunction<ILegendStyleProps, ILegendsStyles>();\n\n// This is an internal interface used for rendering the legends with unique key\ninterface ILegendItem extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n name?: string;\n title: string;\n action: VoidFunction;\n hoverAction: VoidFunction;\n onMouseOutAction: VoidFunction;\n color: string;\n shape?: LegendShape;\n key: number;\n opacity?: number;\n stripePattern?: boolean;\n isLineLegendInBarChart?: boolean;\n}\n\nexport interface ILegendState {\n selectedLegend: string;\n selecetedLegendInHoverCard: string;\n selectedState: boolean;\n hoverState: boolean;\n isHoverCardVisible: boolean;\n selectedLegends: string[];\n}\nexport class LegendsBase extends React.Component<ILegendsProps, ILegendState> {\n private _hoverCardRef: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ILegendsStyles>;\n\n public constructor(props: ILegendsProps) {\n super(props);\n this.state = {\n selectedLegend: 'none',\n selectedState: false,\n hoverState: false,\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n };\n }\n\n public componentDidUpdate(prevProps: ILegendsProps) {\n if (prevProps.selectedLegend !== this.props.selectedLegend) {\n this.setState({ selectedLegend: this.props.selectedLegend! });\n }\n }\n\n public render(): JSX.Element {\n const { theme, className, styles } = this.props;\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const dataToRender = this._generateData();\n return (\n <div className={this._classNames.root}>\n {this.props.enabledWrapLines ? (\n this._onRenderData(dataToRender)\n ) : (\n <ResizeGroup\n data={dataToRender}\n onReduceData={this._onReduceData}\n onRenderData={this._onRenderData}\n onGrowData={this._onGrowData}\n />\n )}\n </div>\n );\n }\n\n private _generateData(): ILegendOverflowData {\n const { allowFocusOnLegends = true } = this.props;\n const dataItems: ILegendItem[] = this.props.legends.map((legend: ILegend, index: number) => {\n return {\n ...(allowFocusOnLegends && {\n nativeButtonProps: getNativeProps<React.HTMLAttributes<HTMLButtonElement>>(legend, buttonProperties, [\n 'title',\n ]),\n 'aria-setsize': this.props.legends.length,\n 'aria-posinset': index + 1,\n }),\n title: legend.title,\n action: legend.action!,\n hoverAction: legend.hoverAction!,\n onMouseOutAction: legend.onMouseOutAction!,\n color: legend.color,\n shape: legend.shape,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n key: index,\n };\n });\n const result: ILegendOverflowData = {\n primary: dataItems,\n overflow: [],\n };\n return result;\n }\n\n private _onRenderData = (data: IOverflowSetItemProps | ILegendOverflowData): JSX.Element => {\n const { overflowProps, allowFocusOnLegends = true } = this.props;\n return (\n <OverflowSet\n {...(allowFocusOnLegends && { role: 'listbox', 'aria-label': 'Legends' })}\n {...overflowProps}\n items={data.primary}\n overflowItems={data.overflow}\n onRenderItem={this._renderButton}\n onRenderOverflowButton={this._renderOverflowItems}\n styles={{\n root: {\n justifyContent: this.props.centerLegends ? 'center' : 'unset',\n flexWrap: 'wrap',\n },\n }}\n />\n );\n };\n\n private _onReduceData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.primary.length === 0) {\n return;\n }\n const overflow = [...currentdata.primary.slice(-1), ...currentdata.overflow];\n const primary = currentdata.primary.slice(0, -1);\n return { primary, overflow };\n };\n\n private _onGrowData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.overflow.length === 0) {\n return;\n }\n const overflow = currentdata.overflow.slice(1);\n const primary = [...currentdata.primary, ...currentdata.overflow.slice(0, 1)];\n return { primary, overflow };\n };\n\n /**\n * This function will get called when there is an ability to\n * select multiple legends\n * @param legend ILegend\n */\n private _canSelectMultipleLegends = (legend: ILegend): void => {\n const selectedLegends = silceOrAppendToArray(this.state.selectedLegends, legend.title);\n this.setState({\n //check if user selected all legends then empty it get the default behaviour\n selectedLegends: selectedLegends.length === this.props.legends.length ? [] : selectedLegends,\n // make selectedState to false if none or all the legends selected\n selectedState:\n selectedLegends.length === 0 || selectedLegends.length === this.props.legends.length ? false : true,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n selectedLegend: 'none',\n hoverState: false,\n });\n };\n\n /**\n * This function will get called when there is\n * ability to select only single legend\n * @param legend ILegend\n */\n\n private _canSelectOnlySingleLegend = (legend: ILegend): void => {\n if (this.state.selectedState === true && this.state.selectedLegend === legend.title) {\n this.setState({\n selectedLegend: 'none',\n selectedState: false,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n } else {\n this.setState({\n hoverState: true,\n selectedState: true,\n selectedLegend: legend.title,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n };\n\n private _onClick = (legend: ILegend): void => {\n if (legend.action) {\n const { canSelectMultipleLegends = false } = this.props;\n if (canSelectMultipleLegends) {\n this._canSelectMultipleLegends(legend);\n } else {\n this._canSelectOnlySingleLegend(legend);\n }\n legend.action();\n }\n };\n\n private _onRenderCompactCard = (expandingCard: IExpandingCardProps): JSX.Element => {\n const { allowFocusOnLegends = true, className, styles, theme } = this.props;\n const overflowHoverCardLegends: JSX.Element[] = [];\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n expandingCard.renderData.forEach((legend: IOverflowSetItemProps, index: number) => {\n const hoverCardElement = this._renderButton(legend, index, true);\n overflowHoverCardLegends.push(hoverCardElement);\n });\n const hoverCardData = (\n <FocusZone\n {...(allowFocusOnLegends && { role: 'listbox' })}\n direction={FocusZoneDirection.vertical}\n {...this.props.focusZonePropsInHoverCard}\n className={classNames.hoverCardRoot}\n >\n {overflowHoverCardLegends}\n </FocusZone>\n );\n return hoverCardData;\n };\n\n private _renderOverflowItems = (legends: ILegend[]) => {\n const { allowFocusOnLegends = true } = this.props;\n const items: IContextualMenuItem[] = [];\n legends.forEach((legend: ILegend, i: number) => {\n items.push({ key: i.toString(), name: legend.title, onClick: legend.action });\n });\n const renderOverflowData: IExpandingCardProps = { renderData: legends };\n const { theme, className, styles, overflowText } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const plainCardProps = {\n onRenderPlainCard: this._onRenderCompactCard,\n renderData: renderOverflowData,\n };\n\n const overflowString = overflowText ? overflowText : 'more';\n // execute similar to \"_onClick\" and \"_onLeave\" logic at HoverCard onCardHide event\n const onHoverCardHideHandler = () => {\n const { canSelectMultipleLegends = false } = this.props;\n const selectedOverflowItem = find(\n legends,\n (legend: ILegend) =>\n legend.title === this.state.selecetedLegendInHoverCard || legend.title === this.state.selectedLegend,\n );\n this.setState(\n {\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n },\n () => {\n if (selectedOverflowItem) {\n this.setState({ selectedLegend: 'none', selectedState: false }, () => {\n if (selectedOverflowItem.action && !canSelectMultipleLegends) {\n selectedOverflowItem.action();\n }\n if (this.props.onLegendHoverCardLeave && canSelectMultipleLegends) {\n this.props.onLegendHoverCardLeave();\n }\n this.setState({ hoverState: false }, () => {\n if (selectedOverflowItem.onMouseOutAction) {\n selectedOverflowItem.onMouseOutAction(true);\n }\n });\n });\n }\n },\n );\n };\n return (\n <HoverCard\n type={HoverCardType.plain}\n plainCardProps={plainCardProps}\n instantOpenOnClick={true}\n // eslint-disable-next-line react/jsx-no-bind\n onCardHide={onHoverCardHideHandler}\n setInitialFocus={true}\n trapFocus={true}\n onCardVisible={this._hoverCardVisible}\n styles={classNames.subComponentStyles.hoverCardStyles}\n cardDismissDelay={300}\n target={this._hoverCardRef}\n >\n <div\n className={classNames.overflowIndicationTextStyle}\n ref={(rootElem: HTMLDivElement) => (this._hoverCardRef = rootElem)}\n {...(allowFocusOnLegends && {\n role: 'link',\n 'aria-expanded': this.state.isHoverCardVisible,\n 'aria-label': `${items.length} ${overflowString}`,\n })}\n data-is-focusable={allowFocusOnLegends}\n >\n {items.length} {overflowString}\n </div>\n </HoverCard>\n );\n };\n\n private _hoverCardVisible = () => {\n this.setState({ isHoverCardVisible: true });\n };\n\n private _onHoverOverLegend = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.hoverAction) {\n this.setState({ hoverState: true, selectedLegend: legend.title });\n legend.hoverAction();\n }\n }\n };\n\n private _onLeave = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.onMouseOutAction) {\n this.setState({ hoverState: false, selectedLegend: 'none' });\n legend.onMouseOutAction();\n }\n }\n };\n\n private _renderButton = (data: IOverflowSetItemProps, index?: number, overflow?: boolean) => {\n const { allowFocusOnLegends = true } = this.props;\n const legend: ILegend = {\n title: data.title,\n color: data.color,\n shape: data.shape,\n action: data.action,\n hoverAction: data.hoverAction,\n onMouseOutAction: data.onMouseOutAction,\n stripePattern: data.stripePattern,\n isLineLegendInBarChart: data.isLineLegendInBarChart,\n opacity: data.opacity,\n };\n const color = this._getColor(legend.title, legend.color);\n const { theme, className, styles } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n colorOnSelectedState: color,\n borderColor: legend.color,\n overflow: overflow,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n });\n const onClickHandler = () => {\n this._onClick(legend);\n };\n const onHoverHandler = () => {\n this._onHoverOverLegend(legend);\n };\n const onMouseOut = () => {\n this._onLeave(legend);\n };\n const shape = this._getShape(classNames, legend, color);\n return (\n <button\n {...(allowFocusOnLegends && {\n 'aria-selected': this.state.selectedLegend === legend.title,\n role: 'option',\n 'aria-label': legend.title,\n 'aria-setsize': data['aria-setsize'],\n 'aria-posinset': data['aria-posinset'],\n })}\n {...(data.nativeButtonProps && { ...data.nativeButtonProps })}\n key={index}\n className={classNames.legend}\n onClick={onClickHandler}\n onMouseOver={onHoverHandler}\n onMouseOut={onMouseOut}\n onFocus={onHoverHandler}\n onBlur={onMouseOut}\n data-is-focusable={allowFocusOnLegends}\n /* eslint-enable react/jsx-no-bind */\n >\n {shape}\n <div className={classNames.text}>{legend.title}</div>\n </button>\n );\n };\n\n private _getShape(\n classNames: IProcessedStyleSet<ILegendsStyles>,\n legend: ILegend,\n color: string,\n ): React.ReactNode | string {\n const svgParentProps: React.SVGAttributes<SVGElement> = {\n className: classNames.shape,\n };\n const svgChildProps: React.SVGAttributes<SVGElement> = {\n fill: color,\n strokeWidth: 2,\n stroke: legend.color,\n };\n return (\n <Shape\n svgProps={svgParentProps}\n pathProps={svgChildProps}\n shape={legend.shape as LegendShape}\n classNameForNonSvg={classNames.rect}\n />\n );\n }\n\n private _getColor(title: string, color: string): string {\n const { theme, canSelectMultipleLegends = false } = this.props;\n const { palette } = theme!;\n let legendColor = color;\n // below if statement will get executed for the hovered legend.\n // (which is also the slected legend see fucntion:-_onHoverOverLegend)\n if (this.state.hoverState && this.state.selectedLegend === title) {\n legendColor = color;\n } // below esle if statement will get executed for the unselected-legend which is hovered\n else if (this.state.hoverState && this.state.selectedLegend !== 'none' && this.state.selectedLegend !== title) {\n legendColor = palette.white;\n } // below else if statement will get executed if the legends are in the selected state\n // this is will only get executed when we have ability to select multiple legends\n else if (!!canSelectMultipleLegends && this.state.selectedState && this.state.selectedLegends.indexOf(title) > -1) {\n legendColor = color;\n } // below else if statement will get executed when no legend is selected and hovered\n //(for example:- initial render of legends)\n else if (\n (!this.state.selectedState && this.state.selectedLegend === 'none') ||\n this.state.selectedLegend === title ||\n this.state.selectedLegends.length <= 0\n ) {\n legendColor = color;\n } else {\n legendColor = palette.white;\n }\n return legendColor;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"Legends.base.js","sourceRoot":"../src/","sources":["components/Legends/Legends.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\n\nimport { IContextualMenuItem } from '@fluentui/react/lib/ContextualMenu';\nimport { HoverCard, HoverCardType, IExpandingCardProps } from '@fluentui/react/lib/HoverCard';\nimport { classNamesFunction, find, getNativeProps, buttonProperties } from '@fluentui/react/lib/Utilities';\nimport { ResizeGroup } from '@fluentui/react/lib/ResizeGroup';\nimport { IProcessedStyleSet } from '@fluentui/react/lib/Styling';\nimport { OverflowSet, IOverflowSetItemProps } from '@fluentui/react/lib/OverflowSet';\nimport { FocusZone, FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ILegend,\n ILegendsProps,\n LegendShape,\n ILegendsStyles,\n ILegendStyleProps,\n ILegendOverflowData,\n} from './Legends.types';\nimport { Shape } from './shape';\n\nimport { silceOrAppendToArray } from '../../utilities/utilities';\n\nconst getClassNames = classNamesFunction<ILegendStyleProps, ILegendsStyles>();\n\n// This is an internal interface used for rendering the legends with unique key\ninterface ILegendItem extends React.ButtonHTMLAttributes<HTMLButtonElement> {\n name?: string;\n title: string;\n action: VoidFunction;\n hoverAction: VoidFunction;\n onMouseOutAction: VoidFunction;\n color: string;\n shape?: LegendShape;\n key: number;\n opacity?: number;\n stripePattern?: boolean;\n isLineLegendInBarChart?: boolean;\n}\n\nexport interface ILegendState {\n selectedLegend: string;\n selecetedLegendInHoverCard: string;\n selectedState: boolean;\n hoverState: boolean;\n isHoverCardVisible: boolean;\n selectedLegends: string[];\n}\nexport class LegendsBase extends React.Component<ILegendsProps, ILegendState> {\n private _hoverCardRef: HTMLDivElement;\n private _classNames: IProcessedStyleSet<ILegendsStyles>;\n\n public constructor(props: ILegendsProps) {\n super(props);\n this.state = {\n selectedLegend: 'none',\n selectedState: false,\n hoverState: false,\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n };\n }\n\n public componentDidUpdate(prevProps: ILegendsProps) {\n if (prevProps.selectedLegend !== this.props.selectedLegend) {\n this.setState({ selectedLegend: this.props.selectedLegend! });\n }\n }\n\n public render(): JSX.Element {\n const { theme, className, styles } = this.props;\n this._classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const dataToRender = this._generateData();\n return (\n <div className={this._classNames.root}>\n {this.props.enabledWrapLines ? (\n this._onRenderData(dataToRender)\n ) : (\n <ResizeGroup\n data={dataToRender}\n onReduceData={this._onReduceData}\n onRenderData={this._onRenderData}\n onGrowData={this._onGrowData}\n />\n )}\n </div>\n );\n }\n\n private _generateData(): ILegendOverflowData {\n const { allowFocusOnLegends = true } = this.props;\n const dataItems: ILegendItem[] = this.props.legends.map((legend: ILegend, index: number) => {\n return {\n ...(allowFocusOnLegends && {\n nativeButtonProps: getNativeProps<React.HTMLAttributes<HTMLButtonElement>>(legend, buttonProperties, [\n 'title',\n ]),\n 'aria-setsize': this.props.legends.length,\n 'aria-posinset': index + 1,\n }),\n title: legend.title,\n action: legend.action!,\n hoverAction: legend.hoverAction!,\n onMouseOutAction: legend.onMouseOutAction!,\n color: legend.color,\n shape: legend.shape,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n key: index,\n };\n });\n const result: ILegendOverflowData = {\n primary: dataItems,\n overflow: [],\n };\n return result;\n }\n\n private _onRenderData = (data: IOverflowSetItemProps | ILegendOverflowData): JSX.Element => {\n const { overflowProps, allowFocusOnLegends = true } = this.props;\n return (\n <OverflowSet\n {...(allowFocusOnLegends && { role: 'listbox', 'aria-label': 'Legends' })}\n {...overflowProps}\n items={data.primary}\n overflowItems={data.overflow}\n onRenderItem={this._renderButton}\n onRenderOverflowButton={this._renderOverflowItems}\n styles={{\n root: {\n justifyContent: this.props.centerLegends ? 'center' : 'unset',\n flexWrap: 'wrap',\n },\n }}\n />\n );\n };\n\n private _onReduceData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.primary.length === 0) {\n return;\n }\n const overflow = [...currentdata.primary.slice(-1), ...currentdata.overflow];\n const primary = currentdata.primary.slice(0, -1);\n return { primary, overflow };\n };\n\n private _onGrowData = (currentdata: IOverflowSetItemProps): {} | void => {\n if (currentdata.overflow.length === 0) {\n return;\n }\n const overflow = currentdata.overflow.slice(1);\n const primary = [...currentdata.primary, ...currentdata.overflow.slice(0, 1)];\n return { primary, overflow };\n };\n\n /**\n * This function will get called when there is an ability to\n * select multiple legends\n * @param legend ILegend\n */\n private _canSelectMultipleLegends = (legend: ILegend): void => {\n const selectedLegends = silceOrAppendToArray(this.state.selectedLegends, legend.title);\n this.setState({\n //check if user selected all legends then empty it get the default behaviour\n selectedLegends: selectedLegends.length === this.props.legends.length ? [] : selectedLegends,\n // make selectedState to false if none or all the legends selected\n selectedState:\n selectedLegends.length === 0 || selectedLegends.length === this.props.legends.length ? false : true,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n selectedLegend: 'none',\n hoverState: false,\n });\n };\n\n /**\n * This function will get called when there is\n * ability to select only single legend\n * @param legend ILegend\n */\n\n private _canSelectOnlySingleLegend = (legend: ILegend): void => {\n if (this.state.selectedState === true && this.state.selectedLegend === legend.title) {\n this.setState({\n selectedLegend: 'none',\n selectedState: false,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n } else {\n this.setState({\n hoverState: true,\n selectedState: true,\n selectedLegend: legend.title,\n selecetedLegendInHoverCard: this.state.isHoverCardVisible ? legend.title : 'none',\n });\n }\n };\n\n private _onClick = (legend: ILegend): void => {\n if (legend.action) {\n const { canSelectMultipleLegends = false } = this.props;\n if (canSelectMultipleLegends) {\n this._canSelectMultipleLegends(legend);\n } else {\n this._canSelectOnlySingleLegend(legend);\n }\n legend.action();\n }\n };\n\n private _onRenderCompactCard = (expandingCard: IExpandingCardProps): JSX.Element => {\n const { allowFocusOnLegends = true, className, styles, theme } = this.props;\n const overflowHoverCardLegends: JSX.Element[] = [];\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n expandingCard.renderData.forEach((legend: IOverflowSetItemProps, index: number) => {\n const hoverCardElement = this._renderButton(legend, index, true);\n overflowHoverCardLegends.push(hoverCardElement);\n });\n const hoverCardData = (\n <FocusZone\n {...(allowFocusOnLegends && { role: 'listbox' })}\n direction={FocusZoneDirection.vertical}\n {...this.props.focusZonePropsInHoverCard}\n className={classNames.hoverCardRoot}\n >\n {overflowHoverCardLegends}\n </FocusZone>\n );\n return hoverCardData;\n };\n\n private _renderOverflowItems = (legends: ILegend[]) => {\n const { allowFocusOnLegends = true } = this.props;\n const items: IContextualMenuItem[] = [];\n legends.forEach((legend: ILegend, i: number) => {\n items.push({ key: i.toString(), name: legend.title, onClick: legend.action });\n });\n const renderOverflowData: IExpandingCardProps = { renderData: legends };\n const { theme, className, styles, overflowText } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n });\n const plainCardProps = {\n onRenderPlainCard: this._onRenderCompactCard,\n renderData: renderOverflowData,\n };\n\n const overflowString = overflowText ? overflowText : 'more';\n // execute similar to \"_onClick\" and \"_onLeave\" logic at HoverCard onCardHide event\n const onHoverCardHideHandler = () => {\n const { canSelectMultipleLegends = false } = this.props;\n const selectedOverflowItem = find(\n legends,\n (legend: ILegend) =>\n legend.title === this.state.selecetedLegendInHoverCard || legend.title === this.state.selectedLegend,\n );\n this.setState(\n {\n isHoverCardVisible: false,\n selecetedLegendInHoverCard: 'none',\n selectedLegends: [],\n },\n () => {\n if (selectedOverflowItem) {\n this.setState({ selectedLegend: 'none', selectedState: false }, () => {\n if (selectedOverflowItem.action && !canSelectMultipleLegends) {\n selectedOverflowItem.action();\n }\n if (this.props.onLegendHoverCardLeave && canSelectMultipleLegends) {\n this.props.onLegendHoverCardLeave();\n }\n this.setState({ hoverState: false }, () => {\n if (selectedOverflowItem.onMouseOutAction) {\n selectedOverflowItem.onMouseOutAction(true);\n }\n });\n });\n }\n },\n );\n };\n return (\n <HoverCard\n type={HoverCardType.plain}\n plainCardProps={plainCardProps}\n instantOpenOnClick={true}\n // eslint-disable-next-line react/jsx-no-bind\n onCardHide={onHoverCardHideHandler}\n setInitialFocus={true}\n trapFocus={true}\n onCardVisible={this._hoverCardVisible}\n styles={classNames.subComponentStyles.hoverCardStyles}\n cardDismissDelay={300}\n target={this._hoverCardRef}\n >\n <div\n className={classNames.overflowIndicationTextStyle}\n ref={(rootElem: HTMLDivElement) => (this._hoverCardRef = rootElem)}\n {...(allowFocusOnLegends && {\n role: 'link',\n 'aria-expanded': this.state.isHoverCardVisible,\n 'aria-label': `${items.length} ${overflowString}`,\n })}\n data-is-focusable={allowFocusOnLegends}\n >\n {items.length} {overflowString}\n </div>\n </HoverCard>\n );\n };\n\n private _hoverCardVisible = () => {\n this.setState({ isHoverCardVisible: true });\n };\n\n private _onHoverOverLegend = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.hoverAction) {\n this.setState({ hoverState: true, selectedLegend: legend.title });\n legend.hoverAction();\n }\n }\n };\n\n private _onLeave = (legend: ILegend) => {\n if (!this.state.selectedState) {\n if (legend.onMouseOutAction) {\n this.setState({ hoverState: false, selectedLegend: 'none' });\n legend.onMouseOutAction();\n }\n }\n };\n\n private _renderButton = (data: IOverflowSetItemProps, index?: number, overflow?: boolean) => {\n const { allowFocusOnLegends = true } = this.props;\n const legend: ILegend = {\n title: data.title,\n color: data.color,\n shape: data.shape,\n action: data.action,\n hoverAction: data.hoverAction,\n onMouseOutAction: data.onMouseOutAction,\n stripePattern: data.stripePattern,\n isLineLegendInBarChart: data.isLineLegendInBarChart,\n opacity: data.opacity,\n };\n const color = this._getColor(legend.title, legend.color);\n const { theme, className, styles } = this.props;\n const classNames = getClassNames(styles!, {\n theme: theme!,\n className,\n colorOnSelectedState: color,\n borderColor: legend.color,\n overflow: overflow,\n stripePattern: legend.stripePattern,\n isLineLegendInBarChart: legend.isLineLegendInBarChart,\n opacity: legend.opacity,\n });\n const onClickHandler = () => {\n this._onClick(legend);\n };\n const onHoverHandler = () => {\n this._onHoverOverLegend(legend);\n };\n const onMouseOut = () => {\n this._onLeave(legend);\n };\n const shape = this._getShape(classNames, legend, color);\n return (\n <button\n {...(allowFocusOnLegends && {\n 'aria-selected': this.state.selectedLegend === legend.title,\n role: 'option',\n 'aria-label': legend.title,\n 'aria-setsize': data['aria-setsize'],\n 'aria-posinset': data['aria-posinset'],\n })}\n {...(data.nativeButtonProps && { ...data.nativeButtonProps })}\n key={index}\n className={classNames.legend}\n onClick={onClickHandler}\n onMouseOver={onHoverHandler}\n onMouseOut={onMouseOut}\n onFocus={onHoverHandler}\n onBlur={onMouseOut}\n data-is-focusable={allowFocusOnLegends}\n /* eslint-enable react/jsx-no-bind */\n >\n {shape}\n <div className={classNames.text}>{legend.title}</div>\n </button>\n );\n };\n\n private _getShape(\n classNames: IProcessedStyleSet<ILegendsStyles>,\n legend: ILegend,\n color: string,\n ): React.ReactNode | string {\n const svgParentProps: React.SVGAttributes<SVGElement> = {\n className: classNames.shape,\n };\n const svgChildProps: React.SVGAttributes<SVGElement> = {\n fill: color,\n strokeWidth: 2,\n stroke: legend.color,\n };\n return (\n <Shape\n svgProps={svgParentProps}\n pathProps={svgChildProps}\n shape={legend.shape as LegendShape}\n classNameForNonSvg={classNames.rect}\n />\n );\n }\n\n private _getColor(title: string, color: string): string {\n const { theme, canSelectMultipleLegends = false } = this.props;\n const { palette } = theme!;\n let legendColor = color;\n // below if statement will get executed for the hovered legend.\n // (which is also the slected legend see fucntion:-_onHoverOverLegend)\n if (this.state.hoverState && this.state.selectedLegend === title) {\n legendColor = color;\n } // below esle if statement will get executed for the unselected-legend which is hovered\n else if (this.state.hoverState && this.state.selectedLegend !== 'none' && this.state.selectedLegend !== title) {\n legendColor = palette.white;\n } // below else if statement will get executed if the legends are in the selected state\n // this is will only get executed when we have ability to select multiple legends\n else if (!!canSelectMultipleLegends && this.state.selectedState && this.state.selectedLegends.indexOf(title) > -1) {\n legendColor = color;\n } // below else if statement will get executed when no legend is selected and hovered\n //(for example:- initial render of legends)\n else if (\n (!this.state.selectedState && this.state.selectedLegend === 'none') ||\n this.state.selectedLegend === title ||\n this.state.selectedLegends.length <= 0\n ) {\n legendColor = color;\n } else {\n legendColor = palette.white;\n }\n return legendColor;\n }\n}\n"]}
|
|
@@ -297,7 +297,7 @@ define(["require", "exports", "tslib", "react", "d3-selection", "../Legends/inde
|
|
|
297
297
|
}, -1);
|
|
298
298
|
var selectedLines;
|
|
299
299
|
if (selectedLineIndex === -1) {
|
|
300
|
-
selectedLines = tslib_1.
|
|
300
|
+
selectedLines = tslib_1.__spreadArray(tslib_1.__spreadArray([], _this_1.state.selectedLegendPoints), [selectedLine]);
|
|
301
301
|
}
|
|
302
302
|
else {
|
|
303
303
|
selectedLines = _this_1.state.selectedLegendPoints
|
|
@@ -337,7 +337,7 @@ define(["require", "exports", "tslib", "react", "d3-selection", "../Legends/inde
|
|
|
337
337
|
}, -1);
|
|
338
338
|
var selectedColorFillBars;
|
|
339
339
|
if (selectedColorFillBarIndex === -1) {
|
|
340
|
-
selectedColorFillBars = tslib_1.
|
|
340
|
+
selectedColorFillBars = tslib_1.__spreadArray(tslib_1.__spreadArray([], _this_1.state.selectedColorBarLegend), [selectedColorFillBar]);
|
|
341
341
|
}
|
|
342
342
|
else {
|
|
343
343
|
selectedColorFillBars = _this_1.state.selectedColorBarLegend
|
|
@@ -496,7 +496,7 @@ define(["require", "exports", "tslib", "react", "d3-selection", "../Legends/inde
|
|
|
496
496
|
return legend;
|
|
497
497
|
})
|
|
498
498
|
: [];
|
|
499
|
-
var legends = (React.createElement(index_1.Legends, tslib_1.__assign({ legends: tslib_1.
|
|
499
|
+
var legends = (React.createElement(index_1.Legends, tslib_1.__assign({ legends: tslib_1.__spreadArray(tslib_1.__spreadArray([], legendDataItems), colorFillBarsLegendDataItems), enabledWrapLines: this.props.enabledLegendsWrapLines, overflowProps: this.props.legendsOverflowProps, focusZonePropsInHoverCard: this.props.focusZonePropsForLegendsInHoverCard, overflowText: this.props.legendsOverflowText }, (isLegendMultiSelectEnabled && { onLegendHoverCardLeave: this._onHoverCardHide }), this.props.legendProps)));
|
|
500
500
|
return legends;
|
|
501
501
|
};
|
|
502
502
|
LineChartBase.prototype._createLines = function (xElement) {
|
|
@@ -532,8 +532,8 @@ define(["require", "exports", "tslib", "react", "d3-selection", "../Legends/inde
|
|
|
532
532
|
var lineId = "" + this_1._lineId + i + j;
|
|
533
533
|
var borderId = "" + this_1._borderId + i + j;
|
|
534
534
|
var circleId = "" + this_1._circleId + i + j;
|
|
535
|
-
var
|
|
536
|
-
var
|
|
535
|
+
var _s = this_1._points[i].data[j - 1], x1 = _s.x, y1 = _s.y, xAxisCalloutData = _s.xAxisCalloutData, xAxisCalloutAccessibilityData = _s.xAxisCalloutAccessibilityData;
|
|
536
|
+
var _t = this_1._points[i].data[j], x2 = _t.x, y2 = _t.y;
|
|
537
537
|
var path = this_1._getPath(this_1._xAxisScale(x1), this_1._yAxisScale(y1), circleId, j, false, this_1._points[i].index);
|
|
538
538
|
var strokeWidth = ((_c = this_1._points[i].lineOptions) === null || _c === void 0 ? void 0 : _c.strokeWidth) || this_1.props.strokeWidth || DEFAULT_LINE_STROKE_SIZE;
|
|
539
539
|
var isLegendSelected = this_1.state.activeLegend === legendVal || this_1.state.activeLegend === '' || this_1.state.isSelectedLegend;
|
|
@@ -542,7 +542,7 @@ define(["require", "exports", "tslib", "react", "d3-selection", "../Legends/inde
|
|
|
542
542
|
if (j + 1 === this_1._points[i].data.length) {
|
|
543
543
|
var lastCircleId_1 = "" + circleId + j + "L";
|
|
544
544
|
path = this_1._getPath(this_1._xAxisScale(x2), this_1._yAxisScale(y2), lastCircleId_1, j, true, this_1._points[i].index);
|
|
545
|
-
var
|
|
545
|
+
var _u = this_1._points[i].data[j], lastCirlceXCallout_1 = _u.xAxisCalloutData, lastCirlceXCalloutAccessibilityData_1 = _u.xAxisCalloutAccessibilityData;
|
|
546
546
|
pointsForLine.push(React.createElement("path", { id: lastCircleId_1, key: lastCircleId_1, d: path, "data-is-focusable": i === 0 ? true : false, onMouseOver: this_1._handleHover.bind(this_1, x2, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1), onMouseMove: this_1._handleHover.bind(this_1, x2, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1), onMouseOut: this_1._handleMouseOut, onFocus: function () {
|
|
547
547
|
return _this_1._handleFocus(lineId, x2, lastCirlceXCallout_1, lastCircleId_1, lastCirlceXCalloutAccessibilityData_1);
|
|
548
548
|
}, onBlur: this_1._handleMouseOut, onClick: this_1._onDataPointClick.bind(this_1, this_1._points[i].data[j].onDataPointClick), visibility: hideNonActiveDots ? 'hidden' : 'visible', opacity: isLegendSelected ? 1 : 0.01, fill: this_1._getPointFill(lineColor, lastCircleId_1, j, true), stroke: lineColor, strokeWidth: 2 }));
|
|
@@ -551,7 +551,8 @@ define(["require", "exports", "tslib", "react", "d3-selection", "../Legends/inde
|
|
|
551
551
|
if (isLegendSelected) {
|
|
552
552
|
// don't draw line if it is in a gap
|
|
553
553
|
if (!isInGap) {
|
|
554
|
-
var lineBorderWidth = ((_d = this_1._points[i].lineOptions) === null || _d === void 0 ? void 0 : _d.lineBorderWidth)
|
|
554
|
+
var lineBorderWidth = ((_d = this_1._points[i].lineOptions) === null || _d === void 0 ? void 0 : _d.lineBorderWidth)
|
|
555
|
+
? Number.parseFloat(this_1._points[i].lineOptions.lineBorderWidth.toString())
|
|
555
556
|
: 0;
|
|
556
557
|
if (lineBorderWidth > 0) {
|
|
557
558
|
bordersForLine.push(React.createElement("line", { id: borderId, key: borderId, x1: this_1._xAxisScale(x1), y1: this_1._yAxisScale(y1), x2: this_1._xAxisScale(x2), y2: this_1._yAxisScale(y2), strokeLinecap: (_f = (_e = this_1._points[i].lineOptions) === null || _e === void 0 ? void 0 : _e.strokeLinecap) !== null && _f !== void 0 ? _f : 'round', strokeWidth: Number.parseFloat(strokeWidth.toString()) + lineBorderWidth, stroke: ((_g = this_1._points[i].lineOptions) === null || _g === void 0 ? void 0 : _g.lineBorderColor) || theme.palette.white, opacity: 1 }));
|
|
@@ -571,7 +572,7 @@ define(["require", "exports", "tslib", "react", "d3-selection", "../Legends/inde
|
|
|
571
572
|
for (var j = 1; j < this._points[i].data.length; j++) {
|
|
572
573
|
_loop_1(j);
|
|
573
574
|
}
|
|
574
|
-
lines.push.apply(lines, tslib_1.
|
|
575
|
+
lines.push.apply(lines, tslib_1.__spreadArray(tslib_1.__spreadArray([], bordersForLine), linesForLine));
|
|
575
576
|
points.push.apply(points, pointsForLine);
|
|
576
577
|
}
|
|
577
578
|
var classNames = getClassNames(this.props.styles, {
|