@fluentui/react-charting 5.6.6 → 5.6.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/CHANGELOG.json +79 -1
  2. package/CHANGELOG.md +41 -2
  3. package/dist/react-charting.js +1 -1
  4. package/dist/react-charting.min.js +1 -1
  5. package/lib/components/CommonComponents/CartesianChart.base.js +1 -2
  6. package/lib/components/CommonComponents/CartesianChart.base.js.map +1 -1
  7. package/lib/components/DonutChart/Arc/Arc.js.map +1 -1
  8. package/lib/components/DonutChart/DonutChart.base.js +2 -1
  9. package/lib/components/DonutChart/DonutChart.base.js.map +1 -1
  10. package/lib/components/HeatMapChart/HeatMapChart.base.js +2 -2
  11. package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  12. package/lib/components/Legends/Legends.base.js +3 -3
  13. package/lib/components/Legends/Legends.base.js.map +1 -1
  14. package/lib/components/LineChart/LineChart.base.js +10 -9
  15. package/lib/components/LineChart/LineChart.base.js.map +1 -1
  16. package/lib/components/PieChart/Arc/Arc.js.map +1 -1
  17. package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  18. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +2 -2
  19. package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  20. package/lib/utilities/utilities.js +4 -4
  21. package/lib/utilities/utilities.js.map +1 -1
  22. package/lib/version.js +1 -1
  23. package/lib/version.js.map +1 -1
  24. package/lib-amd/components/CommonComponents/CartesianChart.base.js +1 -2
  25. package/lib-amd/components/CommonComponents/CartesianChart.base.js.map +1 -1
  26. package/lib-amd/components/DonutChart/Arc/Arc.js.map +1 -1
  27. package/lib-amd/components/DonutChart/DonutChart.base.js +2 -1
  28. package/lib-amd/components/DonutChart/DonutChart.base.js.map +1 -1
  29. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +1 -1
  30. package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  31. package/lib-amd/components/Legends/Legends.base.js +2 -2
  32. package/lib-amd/components/Legends/Legends.base.js.map +1 -1
  33. package/lib-amd/components/LineChart/LineChart.base.js +9 -8
  34. package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
  35. package/lib-amd/components/PieChart/Arc/Arc.js.map +1 -1
  36. package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  37. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -1
  38. package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  39. package/lib-amd/utilities/utilities.js +3 -3
  40. package/lib-amd/utilities/utilities.js.map +1 -1
  41. package/lib-amd/version.js +1 -1
  42. package/lib-amd/version.js.map +1 -1
  43. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js +1 -2
  44. package/lib-commonjs/components/CommonComponents/CartesianChart.base.js.map +1 -1
  45. package/lib-commonjs/components/DonutChart/Arc/Arc.js.map +1 -1
  46. package/lib-commonjs/components/DonutChart/DonutChart.base.js +2 -1
  47. package/lib-commonjs/components/DonutChart/DonutChart.base.js.map +1 -1
  48. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +1 -1
  49. package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
  50. package/lib-commonjs/components/Legends/Legends.base.js +2 -2
  51. package/lib-commonjs/components/Legends/Legends.base.js.map +1 -1
  52. package/lib-commonjs/components/LineChart/LineChart.base.js +9 -8
  53. package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
  54. package/lib-commonjs/components/PieChart/Arc/Arc.js.map +1 -1
  55. package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
  56. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +1 -1
  57. package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
  58. package/lib-commonjs/utilities/utilities.js +3 -3
  59. package/lib-commonjs/utilities/utilities.js.map +1 -1
  60. package/lib-commonjs/version.js +1 -1
  61. package/lib-commonjs/version.js.map +1 -1
  62. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max } from 'd3-array';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { scaleLinear as d3ScaleLinear, ScaleLinear as D3ScaleLinear } from 'd3-scale';\nimport { classNamesFunction, getId, getRTL, warnDeprecations, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { IPalette } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n} from '../../utilities/index';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\ntype NumericScale = D3ScaleLinear<number, number>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n selectedLegendTitle: string;\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string;\n callOutAccessibilityData?: IAccessibilityProps;\n}\nexport class VerticalStackedBarChartBase extends React.Component<\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartState\n> {\n private _points: IVerticalStackedChartProps[];\n private _dataset: IDataPoint[];\n private _xAxisLabels: string[];\n private _bars: JSX.Element[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _additionalSpace: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n isLegendSelected: false,\n isLegendHovered: false,\n selectedLegendTitle: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n const legendBars: JSX.Element = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topRightEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.selectedLegendTitle,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(props.xScale!, props.yScale!, props.containerHeight!, props.containerWidth!)}\n </g>\n </>\n );\n }}\n />\n );\n }\n\n /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this.state.isLegendSelected) {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n xScale: NumericScale,\n yScale: NumericScale,\n containerHeight: number,\n containerWidth: number,\n ): JSX.Element => {\n const { isLegendHovered, isLegendSelected, selectedLegendTitle } = this.state;\n const isNumeric = this._xAxisType === XAxisTypes.NumericAxis;\n const { xBarScale } = this._getScales(containerHeight, containerWidth, isNumeric);\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n Object.keys(lineObject).forEach((item: string, index: number) => {\n let shouldHighlight = true;\n if (isLegendHovered || isLegendSelected) {\n shouldHighlight = selectedLegendTitle === item; // item is legend name;\n }\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = isNumeric\n ? xScale(lineObject[item][i - 1].xItem.xAxisPoint as number)\n : xBarScale(lineObject[item][i - 1].index) + this._additionalSpace;\n const y1 = yScale(lineObject[item][i - 1].y);\n const x2 = isNumeric\n ? xScale(lineObject[item][i].xItem.xAxisPoint as number)\n : xBarScale(lineObject[item][i].index) + this._additionalSpace;\n const y2 = yScale(lineObject[item][i].y);\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3}\n stroke={lineObject[item][i].color}\n {...(isLegendSelected &&\n selectedLegendTitle === item && {\n onMouseOver: this._lineHover.bind(this, lineObject[item][i - 1]),\n onMouseLeave: this._lineHoverOut,\n })}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={\n isNumeric\n ? xScale(circlePoint.xItem.xAxisPoint as number)\n : xBarScale(circlePoint.index) + this._additionalSpace\n }\n cy={yScale(circlePoint.y)}\n onMouseOver={\n isLegendSelected && selectedLegendTitle === item\n ? this._lineHover.bind(this, circlePoint)\n : this._onStackHover.bind(this, circlePoint.xItem)\n }\n {...(isLegendSelected &&\n selectedLegendTitle === item && {\n onMouseLeave: this._lineHoverOut,\n })}\n r={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.palette.white}\n strokeWidth={3}\n visibility={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).visibility}\n />,\n );\n });\n });\n return (\n <>\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleVisibilityAndRadius = (\n xAxispoint: string | number,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } => {\n const { isLegendSelected, activeXAxisDataPoint, selectedLegendTitle } = this.state;\n if (isLegendSelected) {\n if (xAxispoint === activeXAxisDataPoint && legend === selectedLegendTitle) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (legend === selectedLegendTitle) {\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXAxisDataPoint === xAxispoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = this.props.barWidth || 32;\n this._additionalSpace = 0.5 * this._barWidth;\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line deprecation/deprecation\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n }\n\n private _createDataSetLayer(): IDataPoint[] {\n const tempArr: string[] = [];\n const dataset: IDataPoint[] = this._points.map(singlePointData => {\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + point.data;\n });\n tempArr.push(singlePointData.xAxisPoint as string);\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = tempArr;\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderCallout(props?: IVSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendClick(customMessage: string): void {\n if (this.state.isLegendSelected) {\n if (this.state.selectedLegendTitle === customMessage) {\n this.setState({\n isLegendSelected: false,\n selectedLegendTitle: customMessage,\n });\n } else {\n this.setState({\n selectedLegendTitle: customMessage,\n });\n }\n } else {\n this.setState({\n isLegendSelected: true,\n selectedLegendTitle: customMessage,\n });\n }\n }\n\n private _onLegendHover(customMessage: string): void {\n if (this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: true,\n selectedLegendTitle: customMessage,\n });\n }\n }\n\n private _onLegendLeave(isLegendFocused?: boolean): void {\n if (!!isLegendFocused || this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: false,\n selectedLegendTitle: '',\n isLegendSelected: isLegendFocused ? false : this.state.isLegendSelected,\n });\n }\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n ): JSX.Element {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color: color,\n action: () => {\n this._onLegendClick(point.legend);\n },\n hoverAction: allowHoverOnLegend ? () => this._onLegendHover(point.legend) : undefined,\n onMouseOutAction: allowHoverOnLegend ? isLegendSelected => this._onLegendLeave(isLegendSelected) : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n action: () => {\n this._onLegendClick(point.title);\n },\n hoverAction: allowHoverOnLegend ? () => this._onLegendHover(point.title) : undefined,\n onMouseOutAction: allowHoverOnLegend ? isLegendSelected => this._onLegendLeave(isLegendSelected) : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (\n this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend)\n ) {\n this.setState({\n refSelected,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue: point.xAxisCalloutData ? point.xAxisCalloutData : xAxisPoint,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n };\n\n private _lineHoverOut = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n color: '',\n });\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n this.setState({\n refSelected,\n isCalloutVisible: true,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue: stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n const totalData = bars.reduce((iter, value) => iter + value.data, 0);\n const totalHeight = defaultTotalHeight ?? yBarScale(totalData);\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale = (totalHeight - gapHeight * gaps) / totalData;\n\n return {\n gapHeight,\n heightValueScale,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n let yPoint = containerHeight - this.margins.bottom!;\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis ? (singleChartData.xAxisPoint as number) : indexNumber,\n );\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(point => point.data > 0);\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n const color = point.color ? point.color : this._colors[index];\n const ref: IRefArrayData = {};\n\n let shouldHighlight = true;\n if (this.state.isLegendHovered || this.state.isLegendSelected) {\n shouldHighlight = this.state.selectedLegendTitle === point.legend;\n }\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight: shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-labelledby': `toolTip${this._calloutId}`,\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, color, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n };\n\n let barHeight = heightValueScale * point.data;\n if (barHeight < barMinimumHeight) {\n barHeight = barMinimumHeight;\n }\n yPoint = yPoint - barHeight - (index ? gapHeight : 0);\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <path\n key={index + indexNumber + `${shouldFocusWholeStack}`}\n className={classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={color}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n />\n );\n }\n if (barHeight < 1) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <rect\n key={index + indexNumber}\n className={classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={color}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n role=\"text\"\n />\n );\n });\n const groupRef: IRefArrayData = {};\n const stackFocusProps = shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-labelledby': `toolTip${this._calloutId}`,\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'text',\n };\n return (\n <g\n key={indexNumber + `${shouldFocusWholeStack}`}\n id={`${indexNumber}-singleBar`}\n ref={e => (groupRef.refElement = e)}\n {...stackFocusProps}\n >\n {singleBar}\n </g>\n );\n });\n const className = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: className.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars.filter((bar): bar is JSX.Element => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number, isNumeric: boolean) => {\n const yMax = this._yMax;\n const yBarScale = d3ScaleLinear()\n .domain([0, yMax])\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (isNumeric) {\n const xMax = d3Max(this._dataset, (point: IDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, 0] : [0, xMax])\n .nice()\n .range([this.margins.left!, containerWidth - this.margins.right! - this._barWidth]);\n\n return { xBarScale, yBarScale };\n } else {\n const endpointDistance = 0.5 * ((containerWidth - this.margins.right!) / this._dataset.length);\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [this._dataset.length - 1, 0] : [0, this._dataset.length - 1])\n .range([\n this.margins.left! + endpointDistance - this._additionalSpace,\n containerWidth - this.margins.right! - endpointDistance - this._additionalSpace,\n ]);\n return { xBarScale, yBarScale };\n }\n };\n\n private _createNumericBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, true);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _createStringBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, false);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n return (this._bars =\n this._xAxisType === XAxisTypes.NumericAxis\n ? this._createNumericBars(containerHeight, containerWidth, xElement!)\n : this._createStringBars(containerHeight, containerWidth, xElement!));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || 0);\n }\n };\n}\n"]}
1
+ {"version":3,"file":"VerticalStackedBarChart.base.js","sourceRoot":"../src/","sources":["components/VerticalStackedBarChart/VerticalStackedBarChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max } from 'd3-array';\nimport { Axis as D3Axis } from 'd3-axis';\nimport { select as d3Select } from 'd3-selection';\nimport { scaleLinear as d3ScaleLinear, ScaleLinear as D3ScaleLinear } from 'd3-scale';\nimport { classNamesFunction, getId, getRTL, warnDeprecations, memoizeFunction } from '@fluentui/react/lib/Utilities';\nimport { IPalette } from '@fluentui/react/lib/Styling';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { ILegend, Legends } from '../Legends/index';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ChartHoverCard,\n IBasestate,\n IChildProps,\n IDataPoint,\n IMargins,\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartStyleProps,\n IVerticalStackedBarChartStyles,\n IVerticalStackedChartProps,\n IVSChartDataPoint,\n ILineDataInVerticalStackedBarChart,\n IModifiedCartesianChartProps,\n} from '../../index';\nimport { FocusZoneDirection } from '@fluentui/react-focus';\nimport {\n ChartTypes,\n IAxisData,\n getAccessibleDataObject,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n} from '../../utilities/index';\n\nconst getClassNames = classNamesFunction<IVerticalStackedBarChartStyleProps, IVerticalStackedBarChartStyles>();\ntype NumericAxis = D3Axis<number | { valueOf(): number }>;\ntype NumericScale = D3ScaleLinear<number, number>;\nconst COMPONENT_NAME = 'VERTICAL STACKED BAR CHART';\n\n// When displaying gaps between bars, the max height of the gap is given in the\n// props. The actual gap is calculated with this multiplier, with a minimum gap\n// of 1 pixel. (If these values are changed, update the comment for barGapMax.)\nconst barGapMultiplier = 0.2;\nconst barGapMin = 1;\n\ninterface IRefArrayData {\n refElement?: SVGGElement | null;\n}\n\ntype LinePoint = ILineDataInVerticalStackedBarChart & { index: number; xItem: IVerticalStackedChartProps };\ntype LineObject = { [key: string]: LinePoint[] };\ntype LineLegends = {\n title: string;\n color: string;\n};\nenum CircleVisbility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IVerticalStackedBarChartState extends IBasestate {\n selectedLegendTitle: string;\n dataPointCalloutProps?: IVSChartDataPoint;\n stackCalloutProps?: IVerticalStackedChartProps;\n activeXAxisDataPoint: number | string;\n callOutAccessibilityData?: IAccessibilityProps;\n}\nexport class VerticalStackedBarChartBase extends React.Component<\n IVerticalStackedBarChartProps,\n IVerticalStackedBarChartState\n> {\n private _points: IVerticalStackedChartProps[];\n private _dataset: IDataPoint[];\n private _xAxisLabels: string[];\n private _bars: JSX.Element[];\n private _xAxisType: XAxisTypes;\n private _barWidth: number;\n private _additionalSpace: number;\n private _calloutId: string;\n private _colors: string[];\n private margins: IMargins;\n private _isRtl: boolean = getRTL();\n private _createLegendsForLine: (data: IVerticalStackedChartProps[]) => LineLegends[];\n private _lineObject: LineObject;\n private _tooltipId: string;\n private _yMax: number;\n\n public constructor(props: IVerticalStackedBarChartProps) {\n super(props);\n this.state = {\n isCalloutVisible: false,\n isLegendSelected: false,\n isLegendHovered: false,\n selectedLegendTitle: '',\n refSelected: null,\n dataForHoverCard: 0,\n color: '',\n hoverXValue: '',\n YValueHover: [],\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n colors: 'IVSChartDataPoint.color',\n chartLabel: 'use your own title for chart',\n });\n this._handleMouseOut = this._handleMouseOut.bind(this);\n this._calloutId = getId('callout');\n this._tooltipId = getId('VSBCTooltipId_');\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n this._createLegendsForLine = memoizeFunction((data: IVerticalStackedChartProps[]) => this._getLineLegends(data));\n }\n\n public componentDidUpdate(prevProps: IVerticalStackedBarChartProps): void {\n if (\n prevProps.height !== this.props.height ||\n prevProps.width !== this.props.width ||\n prevProps.data !== this.props.data\n ) {\n this._adjustProps();\n this._dataset = this._createDataSetLayer();\n }\n }\n\n public render(): React.ReactNode {\n this._adjustProps();\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n const { isCalloutForStack = false } = this.props;\n this._dataset = this._createDataSetLayer();\n const legendBars: JSX.Element = this._getLegendData(\n this._points,\n this.props.theme!.palette,\n this._createLegendsForLine(this.props.data),\n );\n\n const calloutProps: IModifiedCartesianChartProps['calloutProps'] = {\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topRightEdge,\n id: `toolTip${this._calloutId}`,\n target: this.state.refSelected,\n isBeakVisible: false,\n gapSpace: 15,\n color: this.state.color,\n legend: this.state.selectedLegendTitle,\n XValue: this.state.xCalloutValue!,\n YValue: this.state.yCalloutValue ? this.state.yCalloutValue : this.state.dataForHoverCard,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n onDismiss: this._closeCallout,\n preventDismissOnLostFocus: true,\n ...this.props.calloutProps,\n ...getAccessibleDataObject(this.state.callOutAccessibilityData),\n };\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n return (\n <CartesianChart\n {...this.props}\n points={this._dataset}\n chartType={ChartTypes.VerticalStackedBarChart}\n xAxisType={this._xAxisType}\n calloutProps={calloutProps}\n tickParams={tickParams}\n legendBars={legendBars}\n datasetForXAxisDomain={this._xAxisLabels}\n isCalloutForStack={shouldFocusWholeStack}\n barwidth={this._barWidth}\n focusZoneDirection={\n isCalloutForStack || _isHavingLines ? FocusZoneDirection.horizontal : FocusZoneDirection.vertical\n }\n getmargins={this._getMargins}\n getGraphData={this._getGraphData}\n getAxisData={this._getAxisData}\n customizedCallout={this._getCustomizedCallout()}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n return (\n <>\n <g>{this._bars}</g>\n <g>\n {_isHavingLines &&\n this._createLines(props.xScale!, props.yScale!, props.containerHeight!, props.containerWidth!)}\n </g>\n </>\n );\n }}\n />\n );\n }\n\n /**\n * This function tells us what to focus either the whole stack as focusable item.\n * or each individual item in the stack as focusable item. basically it depends\n * on the prop `isCalloutForStack` if it's false user can focus each individual bar\n * within the bar if it's true then user can focus whole bar as item.\n * but if we have lines in the chart then we force the user to focus only the whole\n * bar, even if isCalloutForStack is false\n */\n private _toFocusWholeStack = (_isHavingLines: boolean): boolean => {\n const { isCalloutForStack = false } = this.props;\n let shouldFocusStackOnly: boolean = false;\n if (_isHavingLines) {\n if (this.state.isLegendSelected) {\n shouldFocusStackOnly = false;\n } else {\n shouldFocusStackOnly = true;\n }\n } else {\n shouldFocusStackOnly = isCalloutForStack;\n }\n return shouldFocusStackOnly;\n };\n\n private _getFormattedLineData = (data: IVerticalStackedChartProps[]): LineObject => {\n const linesData: LinePoint[] = [];\n const formattedLineData: LineObject = {};\n data.forEach((item: IVerticalStackedChartProps, index: number) => {\n if (item.lineData) {\n // injecting corresponding x data point in each of the line data\n // we inject index also , it will be helpful to draw lines when x axis is\n // of string type\n item.lineData.forEach(line => {\n linesData.push({\n ...line,\n index,\n xItem: item,\n });\n });\n }\n });\n linesData.forEach(item => {\n if (formattedLineData[item.legend]) {\n formattedLineData[item.legend].push(item);\n } else {\n formattedLineData[item.legend] = [item];\n }\n });\n return formattedLineData;\n };\n\n private _getLineLegends = (data: IVerticalStackedChartProps[]): LineLegends[] => {\n const lineObject: LineObject = this._lineObject;\n const lineLegends: LineLegends[] = [];\n Object.keys(lineObject).forEach((item: string) => {\n lineLegends.push({\n title: item,\n color: lineObject[item][0].color,\n });\n });\n return lineLegends;\n };\n\n private _createLines = (\n xScale: NumericScale,\n yScale: NumericScale,\n containerHeight: number,\n containerWidth: number,\n ): JSX.Element => {\n const { isLegendHovered, isLegendSelected, selectedLegendTitle } = this.state;\n const isNumeric = this._xAxisType === XAxisTypes.NumericAxis;\n const { xBarScale } = this._getScales(containerHeight, containerWidth, isNumeric);\n const lineObject: LineObject = this._getFormattedLineData(this.props.data);\n const lines: React.ReactNode[] = [];\n const dots: React.ReactNode[] = [];\n Object.keys(lineObject).forEach((item: string, index: number) => {\n let shouldHighlight = true;\n if (isLegendHovered || isLegendSelected) {\n shouldHighlight = selectedLegendTitle === item; // item is legend name;\n }\n for (let i = 1; i < lineObject[item].length; i++) {\n const x1 = isNumeric\n ? xScale(lineObject[item][i - 1].xItem.xAxisPoint as number)\n : xBarScale(lineObject[item][i - 1].index) + this._additionalSpace;\n const y1 = yScale(lineObject[item][i - 1].y);\n const x2 = isNumeric\n ? xScale(lineObject[item][i].xItem.xAxisPoint as number)\n : xBarScale(lineObject[item][i].index) + this._additionalSpace;\n const y2 = yScale(lineObject[item][i].y);\n lines.push(\n <line\n key={`${index}-${i}-line`}\n x1={x1}\n y1={y1}\n x2={x2}\n y2={y2}\n opacity={shouldHighlight ? 1 : 0.1}\n strokeWidth={3}\n stroke={lineObject[item][i].color}\n {...(isLegendSelected &&\n selectedLegendTitle === item && {\n onMouseOver: this._lineHover.bind(this, lineObject[item][i - 1]),\n onMouseLeave: this._lineHoverOut,\n })}\n />,\n );\n }\n });\n Object.keys(lineObject).forEach((item: string, index: number) => {\n lineObject[item].forEach((circlePoint: LinePoint, subIndex: number) => {\n dots.push(\n <circle\n key={`${index}-${subIndex}-dot`}\n cx={\n isNumeric\n ? xScale(circlePoint.xItem.xAxisPoint as number)\n : xBarScale(circlePoint.index) + this._additionalSpace\n }\n cy={yScale(circlePoint.y)}\n onMouseOver={\n isLegendSelected && selectedLegendTitle === item\n ? this._lineHover.bind(this, circlePoint)\n : this._onStackHover.bind(this, circlePoint.xItem)\n }\n {...(isLegendSelected &&\n selectedLegendTitle === item && {\n onMouseLeave: this._lineHoverOut,\n })}\n r={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).radius}\n stroke={circlePoint.color}\n fill={this.props.theme!.palette.white}\n strokeWidth={3}\n visibility={this._getCircleVisibilityAndRadius(circlePoint.xItem.xAxisPoint, circlePoint.legend).visibility}\n />,\n );\n });\n });\n return (\n <>\n {lines}\n {dots}\n </>\n );\n };\n\n private _getCircleVisibilityAndRadius = (\n xAxispoint: string | number,\n legend: string,\n ): { visibility: CircleVisbility; radius: number } => {\n const { isLegendSelected, activeXAxisDataPoint, selectedLegendTitle } = this.state;\n if (isLegendSelected) {\n if (xAxispoint === activeXAxisDataPoint && legend === selectedLegendTitle) {\n return { visibility: CircleVisbility.show, radius: 8 };\n } else if (legend === selectedLegendTitle) {\n return { visibility: CircleVisbility.show, radius: 0.3 };\n } else {\n return { visibility: CircleVisbility.hide, radius: 0 };\n }\n } else {\n return {\n visibility: activeXAxisDataPoint === xAxispoint ? CircleVisbility.show : CircleVisbility.hide,\n radius: 8,\n };\n }\n };\n\n private _adjustProps(): void {\n this._points = this.props.data || [];\n this._barWidth = this.props.barWidth || 32;\n this._additionalSpace = 0.5 * this._barWidth;\n const { theme } = this.props;\n const { palette } = theme!;\n // eslint-disable-next-line deprecation/deprecation\n this._colors = this.props.colors || [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n this._xAxisType = getTypeOfAxis(this.props.data[0].xAxisPoint, true) as XAxisTypes;\n this._lineObject = this._getFormattedLineData(this.props.data);\n }\n\n private _createDataSetLayer(): IDataPoint[] {\n const tempArr: string[] = [];\n const dataset: IDataPoint[] = this._points.map(singlePointData => {\n let total: number = 0;\n singlePointData.chartData!.forEach((point: IVSChartDataPoint) => {\n total = total + point.data;\n });\n tempArr.push(singlePointData.xAxisPoint as string);\n return {\n x: singlePointData.xAxisPoint,\n y: total,\n };\n });\n this._xAxisLabels = tempArr;\n return dataset;\n }\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _renderCallout(props?: IVSChartDataPoint): JSX.Element | null {\n return props ? (\n <ChartHoverCard\n XValue={props.xAxisCalloutData}\n Legend={props.legend}\n YValue={props.yAxisCalloutData}\n color={props.color}\n culture={this.props.culture}\n />\n ) : null;\n }\n\n private _getCustomizedCallout = () => {\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint && !_isHavingLines\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps, this._renderCallout)\n : null;\n };\n\n private _onLegendClick(customMessage: string): void {\n if (this.state.isLegendSelected) {\n if (this.state.selectedLegendTitle === customMessage) {\n this.setState({\n isLegendSelected: false,\n selectedLegendTitle: customMessage,\n });\n } else {\n this.setState({\n selectedLegendTitle: customMessage,\n });\n }\n } else {\n this.setState({\n isLegendSelected: true,\n selectedLegendTitle: customMessage,\n });\n }\n }\n\n private _onLegendHover(customMessage: string): void {\n if (this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: true,\n selectedLegendTitle: customMessage,\n });\n }\n }\n\n private _onLegendLeave(isLegendFocused?: boolean): void {\n if (!!isLegendFocused || this.state.isLegendSelected === false) {\n this.setState({\n isLegendHovered: false,\n selectedLegendTitle: '',\n isLegendSelected: isLegendFocused ? false : this.state.isLegendSelected,\n });\n }\n }\n\n private _getLegendData(\n data: IVerticalStackedChartProps[],\n palette: IPalette,\n lineLegends: LineLegends[],\n ): JSX.Element {\n if (this.props.hideLegend) {\n return <></>;\n }\n const defaultPalette: string[] = [palette.blueLight, palette.blue, palette.blueMid, palette.red, palette.black];\n const actions: ILegend[] = [];\n const { allowHoverOnLegend = true } = this.props;\n\n data.forEach((singleChartData: IVerticalStackedChartProps) => {\n singleChartData.chartData.forEach((point: IVSChartDataPoint) => {\n const color: string = point.color ? point.color : defaultPalette[Math.floor(Math.random() * 4 + 1)];\n const checkSimilarLegends = actions.filter((leg: ILegend) => leg.title === point.legend && leg.color === color);\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: point.legend,\n color: color,\n action: () => {\n this._onLegendClick(point.legend);\n },\n hoverAction: allowHoverOnLegend ? () => this._onLegendHover(point.legend) : undefined,\n onMouseOutAction: allowHoverOnLegend ? isLegendSelected => this._onLegendLeave(isLegendSelected) : undefined,\n };\n\n actions.push(legend);\n });\n });\n const legendsOfLine: ILegend[] = [];\n if (lineLegends && lineLegends.length > 0) {\n lineLegends.forEach((point: LineLegends) => {\n const legend: ILegend = {\n title: point.title,\n color: point.color,\n isLineLegendInBarChart: true,\n action: () => {\n this._onLegendClick(point.title);\n },\n hoverAction: allowHoverOnLegend ? () => this._onLegendHover(point.title) : undefined,\n onMouseOutAction: allowHoverOnLegend ? isLegendSelected => this._onLegendLeave(isLegendSelected) : undefined,\n };\n legendsOfLine.push(legend);\n });\n }\n const totalLegends: ILegend[] = legendsOfLine.concat(actions);\n return (\n <Legends\n legends={totalLegends}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n overflowText={this.props.legendsOverflowText}\n {...this.props.legendProps}\n />\n );\n }\n\n private _onRectHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n mouseEvent.persist();\n this._onRectFocusHover(xAxisPoint, point, color, mouseEvent);\n }\n\n private _onRectFocusHover(\n xAxisPoint: string,\n point: IVSChartDataPoint,\n color: string,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n if (\n this.state.isLegendSelected === false ||\n (this.state.isLegendSelected && this.state.selectedLegendTitle === point.legend)\n ) {\n this.setState({\n refSelected,\n isCalloutVisible: true,\n selectedLegendTitle: point.legend,\n dataForHoverCard: point.data,\n color,\n xCalloutValue: point.xAxisCalloutData ? point.xAxisCalloutData : xAxisPoint,\n yCalloutValue: point.yAxisCalloutData,\n dataPointCalloutProps: point,\n callOutAccessibilityData: point.callOutAccessibilityData,\n });\n }\n }\n\n private _lineHover = (lineData: LinePoint, mouseEvent: React.MouseEvent<SVGElement>) => {\n mouseEvent.persist();\n this.setState({\n refSelected: mouseEvent,\n isCalloutVisible: true,\n xCalloutValue: `${lineData.xItem.xAxisPoint}`,\n yCalloutValue: `${lineData.yAxisCalloutData || lineData.data || lineData.y}`,\n activeXAxisDataPoint: lineData.xItem.xAxisPoint,\n color: lineData.color,\n });\n };\n\n private _lineHoverOut = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n xCalloutValue: '',\n yCalloutValue: '',\n activeXAxisDataPoint: '',\n color: '',\n });\n };\n\n private _onStackHover(stack: IVerticalStackedChartProps, mouseEvent: React.MouseEvent<SVGElement>): void {\n mouseEvent.persist();\n this._onStackHoverFocus(stack, mouseEvent);\n }\n\n private _onStackHoverFocus(\n stack: IVerticalStackedChartProps,\n refSelected: React.MouseEvent<SVGElement> | SVGGElement,\n ): void {\n const lineData = stack.lineData;\n const isLinesPresent: boolean = lineData !== undefined && lineData.length > 0;\n if (isLinesPresent) {\n lineData!.forEach((item: ILineDataInVerticalStackedBarChart & { shouldDrawBorderBottom?: boolean }) => {\n item.data = item.data || item.y;\n item.shouldDrawBorderBottom = true;\n });\n }\n this.setState({\n refSelected,\n isCalloutVisible: true,\n YValueHover: isLinesPresent\n ? [...lineData!.sort((a, b) => (a.data! < b.data! ? 1 : -1)), ...stack.chartData.slice().reverse()]\n : stack.chartData.slice().reverse(),\n hoverXValue: stack.xAxisPoint,\n stackCalloutProps: stack,\n activeXAxisDataPoint: stack.xAxisPoint,\n callOutAccessibilityData: stack.stackCallOutAccessibilityData,\n });\n }\n\n private _onRectFocus(point: IVSChartDataPoint, xAxisPoint: string, color: string, ref: IRefArrayData): void {\n if (ref.refElement) {\n this._onRectFocusHover(xAxisPoint, point, color, ref.refElement);\n }\n }\n\n private _onStackFocus(stack: IVerticalStackedChartProps, groupRef: IRefArrayData): void {\n if (groupRef.refElement) {\n this._onStackHoverFocus(stack, groupRef.refElement);\n }\n }\n\n private _handleMouseOut = (): void => {\n this.setState({\n isCalloutVisible: false,\n activeXAxisDataPoint: '',\n });\n };\n\n private _onClick(\n data: IVerticalStackedChartProps | IVSChartDataPoint,\n mouseEvent: React.MouseEvent<SVGElement>,\n ): void {\n this.props.onBarClick?.(mouseEvent, data);\n this.props.href ? (window.location.href = this.props.href) : '';\n }\n\n private _getBarGapAndScale(\n bars: IVSChartDataPoint[],\n yBarScale: NumericScale,\n defaultTotalHeight?: number,\n ): {\n readonly gapHeight: number;\n readonly heightValueScale: number;\n } {\n const { barGapMax = 0 } = this.props;\n\n // When displaying gaps between the bars, the height of each bar is\n // adjusted so that the total of all bars is not changed by the gaps\n const totalData = bars.reduce((iter, value) => iter + value.data, 0);\n const totalHeight = defaultTotalHeight ?? yBarScale(totalData);\n const gaps = barGapMax && bars.length - 1;\n const gapHeight = gaps && Math.max(barGapMin, Math.min(barGapMax, (totalHeight * barGapMultiplier) / gaps));\n const heightValueScale = (totalHeight - gapHeight * gaps) / totalData;\n\n return {\n gapHeight,\n heightValueScale,\n } as const;\n }\n\n private _createBar = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xBarScale: any,\n yBarScale: NumericScale,\n containerHeight: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { barCornerRadius = 0, barMinimumHeight = 0 } = this.props;\n const _isHavingLines = this.props.data.some(\n (item: IVerticalStackedChartProps) => item.lineData && item.lineData.length > 0,\n );\n const shouldFocusWholeStack = this._toFocusWholeStack(_isHavingLines);\n\n const bars = this._points.map((singleChartData: IVerticalStackedChartProps, indexNumber: number) => {\n let yPoint = containerHeight - this.margins.bottom!;\n const xPoint = xBarScale(\n this._xAxisType === XAxisTypes.NumericAxis ? (singleChartData.xAxisPoint as number) : indexNumber,\n );\n\n // Removing datapoints with zero data\n const barsToDisplay = singleChartData.chartData.filter(point => point.data > 0);\n\n if (!barsToDisplay.length) {\n return undefined;\n }\n\n const { gapHeight, heightValueScale } = this._getBarGapAndScale(barsToDisplay, yBarScale);\n\n if (heightValueScale < 0) {\n return undefined;\n }\n\n const singleBar = barsToDisplay.map((point: IVSChartDataPoint, index: number) => {\n const color = point.color ? point.color : this._colors[index];\n const ref: IRefArrayData = {};\n\n let shouldHighlight = true;\n if (this.state.isLegendHovered || this.state.isLegendSelected) {\n shouldHighlight = this.state.selectedLegendTitle === point.legend;\n }\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n shouldHighlight: shouldHighlight,\n href: this.props.href,\n });\n const rectFocusProps = !shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-labelledby': `toolTip${this._calloutId}`,\n onMouseOver: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseMove: this._onRectHover.bind(this, singleChartData.xAxisPoint, point, color),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onRectFocus.bind(this, point, singleChartData.xAxisPoint, color, ref),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, point),\n };\n\n let barHeight = heightValueScale * point.data;\n if (barHeight < barMinimumHeight) {\n barHeight = barMinimumHeight;\n }\n yPoint = yPoint - barHeight - (index ? gapHeight : 0);\n\n // If set, apply the corner radius to the top of the final bar\n if (barCornerRadius && barHeight > barCornerRadius && index === barsToDisplay.length - 1) {\n return (\n <path\n key={index + indexNumber + `${shouldFocusWholeStack}`}\n className={classNames.opacityChangeOnHover}\n d={`\n M ${xPoint} ${yPoint + barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${-barCornerRadius}\n h ${this._barWidth - 2 * barCornerRadius}\n a ${barCornerRadius} ${barCornerRadius} 0 0 1 ${barCornerRadius} ${barCornerRadius}\n v ${barHeight - barCornerRadius}\n h ${-this._barWidth}\n z\n `}\n fill={color}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n />\n );\n }\n if (barHeight < 1) {\n return <React.Fragment key={index + indexNumber}> </React.Fragment>;\n }\n return (\n <rect\n key={index + indexNumber}\n className={classNames.opacityChangeOnHover}\n x={xPoint}\n y={yPoint}\n width={this._barWidth}\n height={barHeight}\n fill={color}\n ref={e => (ref.refElement = e)}\n {...rectFocusProps}\n role=\"text\"\n />\n );\n });\n const groupRef: IRefArrayData = {};\n const stackFocusProps = shouldFocusWholeStack && {\n 'data-is-focusable': !this.props.hideTooltip,\n 'aria-labelledby': `toolTip${this._calloutId}`,\n onMouseOver: this._onStackHover.bind(this, singleChartData),\n onMouseMove: this._onStackHover.bind(this, singleChartData),\n onMouseLeave: this._handleMouseOut,\n onFocus: this._onStackFocus.bind(this, singleChartData, groupRef),\n onBlur: this._handleMouseOut,\n onClick: this._onClick.bind(this, singleChartData),\n role: 'text',\n };\n return (\n <g\n key={indexNumber + `${shouldFocusWholeStack}`}\n id={`${indexNumber}-singleBar`}\n ref={e => (groupRef.refElement = e)}\n {...stackFocusProps}\n >\n {singleBar}\n </g>\n );\n });\n const className = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xBarScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: className.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return bars.filter((bar): bar is JSX.Element => !!bar);\n };\n\n private _getScales = (containerHeight: number, containerWidth: number, isNumeric: boolean) => {\n const yMax = this._yMax;\n const yBarScale = d3ScaleLinear()\n .domain([0, yMax])\n .range([0, containerHeight - this.margins.bottom! - this.margins.top!]);\n if (isNumeric) {\n const xMax = d3Max(this._dataset, (point: IDataPoint) => point.x as number)!;\n\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [xMax, 0] : [0, xMax])\n .nice()\n .range([this.margins.left!, containerWidth - this.margins.right! - this._barWidth]);\n\n return { xBarScale, yBarScale };\n } else {\n const endpointDistance = 0.5 * ((containerWidth - this.margins.right!) / this._dataset.length);\n const xBarScale = d3ScaleLinear()\n .domain(this._isRtl ? [this._dataset.length - 1, 0] : [0, this._dataset.length - 1])\n .range([\n this.margins.left! + endpointDistance - this._additionalSpace,\n containerWidth - this.margins.right! - endpointDistance - this._additionalSpace,\n ]);\n return { xBarScale, yBarScale };\n }\n };\n\n private _createNumericBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, true);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _createStringBars = (\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement,\n ): JSX.Element[] => {\n const { xBarScale, yBarScale } = this._getScales(containerHeight, containerWidth, false);\n\n return this._createBar(xBarScale, yBarScale, containerHeight, xElement);\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xScale: any,\n yScale: NumericAxis,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n return (this._bars =\n this._xAxisType === XAxisTypes.NumericAxis\n ? this._createNumericBars(containerHeight, containerWidth, xElement!)\n : this._createStringBars(containerHeight, containerWidth, xElement!));\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n private _getAxisData = (yAxisData: IAxisData) => {\n if (yAxisData && yAxisData.yAxisDomainValues.length) {\n const { yAxisDomainValues: domainValue } = yAxisData;\n this._yMax = Math.max(domainValue[domainValue.length - 1], this.props.yMaxValue || 0);\n }\n };\n}\n"]}
@@ -231,7 +231,7 @@ define(["require", "exports", "tslib", "d3-axis", "d3-array", "d3-scale", "d3-se
231
231
  function silceOrAppendToArray(array, value) {
232
232
  var pos = array.indexOf(value);
233
233
  if (pos === -1) {
234
- return tslib_1.__spreadArrays(array, [value]);
234
+ return tslib_1.__spreadArray(tslib_1.__spreadArray([], array), [value]);
235
235
  }
236
236
  else {
237
237
  return array.slice(0, pos).concat(array.slice(pos + 1));
@@ -424,8 +424,8 @@ define(["require", "exports", "tslib", "d3-axis", "d3-array", "d3-scale", "d3-se
424
424
  // Need to draw graph with given small and large date (Which Involves customization of date axis tick values)
425
425
  // That may be Either from given graph data or from prop 'tickValues' date values.
426
426
  // So, Finding smallest and largest dates
427
- var smallestDate = d3_array_1.min(tslib_1.__spreadArrays(tickValues, [sDate]));
428
- var largestDate = d3_array_1.max(tslib_1.__spreadArrays(tickValues, [lDate]));
427
+ var smallestDate = d3_array_1.min(tslib_1.__spreadArray(tslib_1.__spreadArray([], tickValues), [sDate]));
428
+ var largestDate = d3_array_1.max(tslib_1.__spreadArray(tslib_1.__spreadArray([], tickValues), [lDate]));
429
429
  var rStartValue = margins.left;
430
430
  var rEndValue = width - margins.right;
431
431
  return isRTL
@@ -1 +1 @@
1
- {"version":3,"file":"utilities.js","sourceRoot":"../src/","sources":["utilities/utilities.ts"],"names":[],"mappings":"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","sourcesContent":["import { axisRight as d3AxisRight, axisBottom as d3AxisBottom, axisLeft as d3AxisLeft, Axis as D3Axis } from 'd3-axis';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { scaleLinear as d3ScaleLinear, scaleTime as d3ScaleTime, scaleBand as d3ScaleBand } from 'd3-scale';\nimport { select as d3Select, event as d3Event } from 'd3-selection';\nimport { format as d3Format } from 'd3-format';\nimport * as d3TimeFormat from 'd3-time-format';\nimport {\n IAccessibilityProps,\n IEventsAnnotationProps,\n ILineChartPoints,\n ILineChartDataPoint,\n IDataPoint,\n IVerticalBarChartDataPoint,\n} from '../index';\n\nexport type NumericAxis = D3Axis<number | { valueOf(): number }>;\nexport type StringAxis = D3Axis<string>;\n\nexport enum ChartTypes {\n AreaChart,\n LineChart,\n VerticalBarChart,\n VerticalStackedBarChart,\n GroupedVerticalBarChart,\n HeatMapChart,\n}\n\nexport enum XAxisTypes {\n NumericAxis,\n DateAxis,\n StringAxis,\n}\n\nexport enum YAxisType {\n NumericAxis,\n DateAxis,\n StringAxis,\n}\n\nexport interface IWrapLabelProps {\n node: SVGElement | null;\n xAxis: NumericAxis | StringAxis;\n noOfCharsToTruncate: number;\n showXAxisLablesTooltip: boolean;\n}\n\nexport interface IAxisData {\n yAxisDomainValues: number[];\n}\n\nexport interface IMargins {\n /**\n * left margin for the chart.\n * @default 40\n */\n left?: number;\n /**\n * Right margin for the chart.\n * @default 20\n */\n right?: number;\n /**\n * Top margin for the chart.\n * @default 20\n */\n top?: number;\n /**\n * Bottom margin for the chart.\n * @default 35\n */\n bottom?: number;\n}\n\nexport interface IDomainNRange {\n dStartValue: number | Date;\n dEndValue: number | Date;\n rStartValue: number;\n rEndValue: number;\n}\n\nexport interface IXAxisParams {\n domainNRangeValues: IDomainNRange;\n xAxisElement?: SVGElement | null;\n xAxisCount?: number;\n showRoundOffXTickValues?: boolean;\n xAxistickSize?: number;\n tickPadding?: number;\n xAxisPadding?: number;\n}\nexport interface ITickParams {\n tickValues?: Date[] | number[];\n tickFormat?: string;\n}\n\nexport interface IYAxisParams {\n yMinMaxValues?: {\n startValue: number;\n endValue: number;\n };\n maxOfYVal?: number;\n margins: IMargins;\n containerWidth: number;\n containerHeight: number;\n yAxisElement?: SVGElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxisTickFormat?: any;\n yAxisTickCount: number;\n yMaxValue?: number;\n yMinValue?: number;\n tickPadding?: number;\n eventAnnotationProps?: IEventsAnnotationProps;\n eventLabelHeight?: number;\n yAxisPadding?: number;\n}\n\n/**\n * Create Numeric X axis\n * @export\n * @param {IXAxisParams} xAxisParams\n */\nexport function createNumericXAxis(xAxisParams: IXAxisParams, culture?: string) {\n const {\n domainNRangeValues,\n showRoundOffXTickValues = false,\n xAxistickSize = 6,\n tickPadding = 10,\n xAxisCount = 6,\n xAxisElement,\n } = xAxisParams;\n const xAxisScale = d3ScaleLinear()\n .domain([domainNRangeValues.dStartValue, domainNRangeValues.dEndValue])\n .range([domainNRangeValues.rStartValue, domainNRangeValues.rEndValue]);\n showRoundOffXTickValues && xAxisScale.nice();\n\n const xAxis = d3AxisBottom(xAxisScale)\n .tickSize(xAxistickSize)\n .tickPadding(tickPadding)\n .ticks(xAxisCount)\n .tickSizeOuter(0)\n .tickFormat((domainValue, index) => {\n const xAxisValue = typeof domainValue === 'number' ? domainValue : domainValue.valueOf();\n return convertToLocaleString(xAxisValue, culture) as string;\n });\n if (xAxisElement) {\n d3Select(xAxisElement).call(xAxis).selectAll('text').attr('aria-hidden', 'true');\n }\n return xAxisScale;\n}\n\n/**\n * Creating Date x axis of the Chart\n * @export\n * @param {IXAxisParams} xAxisParams\n * @param {ITickParams} tickParams\n */\nexport function createDateXAxis(xAxisParams: IXAxisParams, tickParams: ITickParams) {\n const { domainNRangeValues, xAxisElement, tickPadding = 6, xAxistickSize = 6, xAxisCount = 6 } = xAxisParams;\n const xAxisScale = d3ScaleTime()\n .domain([domainNRangeValues.dStartValue, domainNRangeValues.dEndValue])\n .range([domainNRangeValues.rStartValue, domainNRangeValues.rEndValue]);\n const xAxis = d3AxisBottom(xAxisScale).tickSize(xAxistickSize).tickPadding(tickPadding).ticks(xAxisCount);\n tickParams.tickValues ? xAxis.tickValues(tickParams.tickValues) : '';\n tickParams.tickFormat ? xAxis.tickFormat(d3TimeFormat.timeFormat(tickParams.tickFormat)) : '';\n if (xAxisElement) {\n d3Select(xAxisElement).call(xAxis).selectAll('text').attr('aria-hidden', 'true');\n }\n return xAxisScale;\n}\n\n/**\n * Create String X axis\n * Currently using for only Vetical stacked bar chart and grouped vertical bar chart\n * @export\n * @param {IXAxisParams} xAxisParams\n * @param {ITickParams} tickParams\n * @param {string[]} dataset\n * @returns\n */\nexport function createStringXAxis(\n xAxisParams: IXAxisParams,\n tickParams: ITickParams,\n dataset: string[],\n culture?: string,\n) {\n const { domainNRangeValues, xAxisCount = 6, xAxistickSize = 6, tickPadding = 10, xAxisPadding = 0.1 } = xAxisParams;\n const xAxisScale = d3ScaleBand()\n .domain(dataset!)\n .range([domainNRangeValues.rStartValue, domainNRangeValues.rEndValue])\n .padding(xAxisPadding);\n const xAxis = d3AxisBottom(xAxisScale)\n .tickSize(xAxistickSize)\n .tickPadding(tickPadding)\n .ticks(xAxisCount)\n .tickFormat((x: string, index: number) => {\n return convertToLocaleString(dataset[index], culture) as string;\n });\n\n if (xAxisParams.xAxisElement) {\n d3Select(xAxisParams.xAxisElement).call(xAxis).selectAll('text').attr('aria-hidden', 'true');\n }\n return xAxisScale;\n}\n\n/**\n * This method used for creating data points for the y axis.\n * @export\n * @param {number} maxVal\n * @param {number} minVal\n * @param {number} splitInto\n * @returns {number[]}\n */\nexport function prepareDatapoints(maxVal: number, minVal: number, splitInto: number): number[] {\n const val = Math.ceil((maxVal - minVal) / splitInto);\n const dataPointsArray: number[] = [minVal, minVal + val];\n while (dataPointsArray[dataPointsArray.length - 1] < maxVal) {\n dataPointsArray.push(dataPointsArray[dataPointsArray.length - 1] + val);\n }\n return dataPointsArray;\n}\n\n/**\n * Creating Numeric Y axis of the chart\n * @export\n * @param {IYAxisParams} yAxisParams\n * @param {boolean} isRtl\n */\nexport function createYAxis(yAxisParams: IYAxisParams, isRtl: boolean, axisData: IAxisData) {\n const {\n yMinMaxValues = { startValue: 0, endValue: 0 },\n yAxisElement = null,\n yMaxValue = 0,\n yMinValue = 0,\n containerHeight,\n containerWidth,\n margins,\n tickPadding = 12,\n maxOfYVal = 0,\n yAxisTickFormat,\n yAxisTickCount = 4,\n eventAnnotationProps,\n eventLabelHeight,\n } = yAxisParams;\n\n // maxOfYVal coming from only area chart and Grouped vertical bar chart(Calculation done at base file)\n const tempVal = maxOfYVal || yMinMaxValues.endValue;\n const finalYmax = tempVal > yMaxValue ? tempVal : yMaxValue!;\n const finalYmin = yMinMaxValues.startValue < yMinValue ? 0 : yMinValue!;\n const domainValues = prepareDatapoints(finalYmax, finalYmin, yAxisTickCount);\n const yAxisScale = d3ScaleLinear()\n .domain([finalYmin, domainValues[domainValues.length - 1]])\n .range([containerHeight - margins.bottom!, margins.top! + (eventAnnotationProps! ? eventLabelHeight! : 0)]);\n const axis = isRtl ? d3AxisRight(yAxisScale) : d3AxisLeft(yAxisScale);\n const yAxis = axis\n .tickPadding(tickPadding)\n .tickValues(domainValues)\n .tickSizeInner(-(containerWidth - margins.left! - margins.right!));\n yAxisTickFormat ? yAxis.tickFormat(yAxisTickFormat) : yAxis.tickFormat(d3Format('.2~s'));\n yAxisElement ? d3Select(yAxisElement).call(yAxis).selectAll('text').attr('aria-hidden', 'true') : '';\n axisData.yAxisDomainValues = domainValues;\n return yAxisScale;\n}\n\n/**\n * Creating String Y axis of the chart\n * @param yAxisParams\n * @param dataPoints\n * @param isRtl\n */\nexport const createStringYAxis = (yAxisParams: IYAxisParams, dataPoints: string[], isRtl: boolean) => {\n const { containerHeight, tickPadding = 12, margins, yAxisTickFormat, yAxisElement, yAxisPadding = 0 } = yAxisParams;\n const yAxisScale = d3ScaleBand()\n .domain(dataPoints)\n .range([containerHeight - margins.bottom!, margins.top!])\n .padding(yAxisPadding);\n const axis = isRtl ? d3AxisRight(yAxisScale) : d3AxisLeft(yAxisScale);\n const yAxis = axis.tickPadding(tickPadding).tickValues(dataPoints).tickSize(0);\n if (yAxisTickFormat) {\n yAxis.tickFormat(yAxisTickFormat);\n }\n yAxisElement ? d3Select(yAxisElement).call(yAxis).selectAll('text') : '';\n return yAxisScale;\n};\n\n/**\n * For area chart and line chart, while displaying stackCallout, Need to form a callout data object.\n * This methos creates an object for those 2 charts.\n * @param values\n */\n\ntype DataPoint = {\n legend: string;\n y: number;\n x: number | Date | string;\n color: string;\n yAxisCalloutData: string;\n index?: number;\n callOutAccessibilityData?: IAccessibilityProps;\n};\n\nexport function calloutData(values: (ILineChartPoints & { index?: number })[]) {\n let combinedResult: {\n legend: string;\n y: number;\n x: number | Date | string;\n color: string;\n yAxisCalloutData?: string | { [id: string]: number };\n callOutAccessibilityData?: IAccessibilityProps;\n }[] = [];\n\n values.forEach((element: { data: ILineChartDataPoint[]; legend: string; color: string; index?: number }) => {\n const elements = element.data\n .filter((ele: ILineChartDataPoint) => !ele.hideCallout)\n .map((ele: ILineChartDataPoint) => {\n return { legend: element.legend, ...ele, color: element.color, index: element.index };\n });\n combinedResult = combinedResult.concat(elements);\n });\n\n const result: { x: number | Date | string; values: { legend: string; y: number }[] }[] = [];\n combinedResult.forEach((e1: DataPoint, index: number) => {\n e1.x = e1.x instanceof Date ? e1.x.getTime() : e1.x;\n const filteredValues = [\n {\n legend: e1.legend,\n y: e1.y,\n color: e1.color,\n yAxisCalloutData: e1.yAxisCalloutData,\n callOutAccessibilityData: e1.callOutAccessibilityData,\n index: e1.index,\n },\n ];\n combinedResult.slice(index + 1).forEach((e2: DataPoint) => {\n e2.x = e2.x instanceof Date ? e2.x.getTime() : e2.x;\n if (e1.x === e2.x) {\n filteredValues.push({\n legend: e2.legend,\n y: e2.y,\n color: e2.color,\n yAxisCalloutData: e2.yAxisCalloutData,\n callOutAccessibilityData: e2.callOutAccessibilityData,\n index: e2.index,\n });\n }\n });\n result.push({ x: e1.x, values: filteredValues });\n });\n return getUnique(result, 'x');\n}\n\nexport function getUnique(\n arr: { x: number | Date | string; values: { legend: string; y: number }[] }[],\n comp: string | number,\n) {\n const unique = arr\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map((e: { [x: string]: any }) => e[comp])\n // store the keys of the unique objects\n .map((e: string, i: number, final: string[]) => final.indexOf(e) === i && i)\n // eliminate the dead keys & store unique objects\n .filter((e: number) => arr[e])\n .map((e: number) => arr[e]);\n return unique;\n}\n\n/**\n * This function takes two paramerter\n * 1. an array of strings\n * 2. a string value\n * if the value is not present in the given array then it will return the new\n * array by appending the value to the present arrray.\n *\n * if the value is already present in the given array then it will return the new\n * array by deleteing the value from the the array\n * @param array\n * @param value\n */\nexport function silceOrAppendToArray(array: string[], value: string): string[] {\n const pos = array.indexOf(value);\n if (pos === -1) {\n return [...array, value];\n } else {\n return array.slice(0, pos).concat(array.slice(pos + 1));\n }\n}\n\n/**\n * This method used for wrapping of x axis labels (tick values).\n * It breaks down given text value by space separated and calculates the total height needed to display all the words.\n * That value = removal value. This value needs to be remove from total svg height, svg will shrink and\n * total text will be displayed.\n * @export\n * @param {IWrapLabelProps} wrapLabelProps\n * @returns\n */\nexport function createWrapOfXLabels(wrapLabelProps: IWrapLabelProps) {\n const { node, xAxis, noOfCharsToTruncate, showXAxisLablesTooltip } = wrapLabelProps;\n if (node === null) {\n return;\n }\n const axisNode = d3Select(node).call(xAxis);\n let removeVal = 0;\n const width = 10;\n const arr: number[] = [];\n axisNode.selectAll('.tick text').each(function () {\n const text = d3Select(this);\n const totalWord = text.text();\n const truncatedWord = `${text.text().slice(0, noOfCharsToTruncate)}...`;\n const totalWordLength = text.text().length;\n const words = text.text().split(/\\s+/).reverse();\n arr.push(words.length);\n let word: string = '';\n let line: string[] = [];\n let lineNumber: number = 0;\n const lineHeight = 1.1; // ems\n const y = text.attr('y');\n const dy = parseFloat(text.attr('dy'));\n let tspan = text\n .text(null)\n .append('tspan')\n .attr('x', 0)\n .attr('y', y)\n .attr('id', 'BaseSpan')\n .attr('dy', dy + 'em')\n .attr('data-', totalWord);\n\n if (showXAxisLablesTooltip && totalWordLength > noOfCharsToTruncate) {\n tspan = text\n .append('tspan')\n .attr('id', 'showDots')\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(truncatedWord);\n } else if (showXAxisLablesTooltip && totalWordLength <= noOfCharsToTruncate) {\n tspan = text\n .append('tspan')\n .attr('id', 'LessLength')\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(totalWord);\n } else {\n while ((word = words.pop()!)) {\n line.push(word);\n tspan.text(line.join(' '));\n if (tspan.node()!.getComputedTextLength() > width && line.length > 1) {\n line.pop();\n tspan.text(line.join(' '));\n line = [word];\n tspan = text\n .append('tspan')\n .attr('id', 'WordBreakId')\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(word);\n }\n }\n const maxDigit = Math.max(...arr);\n let maxHeight: number = 12; // intial value to render corretly first time\n axisNode.selectAll('text').each(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const outerHTMLElement = document.getElementById('WordBreakId') as any;\n const BoxCordinates = outerHTMLElement && outerHTMLElement.getBoundingClientRect();\n const boxHeight = BoxCordinates && BoxCordinates.height;\n if (boxHeight > maxHeight) {\n maxHeight = boxHeight;\n }\n });\n // If we take directly maxDigit * maxheight, then it will show more height between x axis tick values and bottom.\n // To avoid this, reducing maxDigit value by removing some digit based on legth of word.\n let removeDigit: number = 4;\n if (maxDigit <= 2) {\n removeDigit = 1;\n } else if (maxDigit > 2 && maxDigit <= 6) {\n removeDigit = 2;\n } else if (maxDigit > 6 && maxDigit <= 9) {\n removeDigit = 3;\n }\n removeVal = (maxDigit - removeDigit) * maxHeight;\n }\n });\n return removeVal > 0 ? removeVal : 0;\n}\n\n/**\n * This method displays a tooltip to the x axis lables(tick values)\n * when prop 'showXAxisLablesTooltip' enables to the respected chart.\n * On hover of the truncated word(at x axis labels tick), a tooltip will be appeared.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function tooltipOfXAxislabels(xAxistooltipProps: any) {\n const { tooltipCls, xAxis, id } = xAxistooltipProps;\n if (xAxis === null) {\n return null;\n }\n const div = d3Select('body').append('div').attr('id', id).attr('class', tooltipCls).style('opacity', 0);\n const aa = xAxis!.selectAll('#BaseSpan')._groups[0];\n const baseSpanLength = aa && Object.keys(aa)!.length;\n const originalDataArray: string[] = [];\n for (let i = 0; i < baseSpanLength; i++) {\n const originalData = aa[i].dataset && (Object.values(aa[i].dataset)[0] as string);\n originalDataArray.push(originalData);\n }\n const tickObject = xAxis!.selectAll('.tick')._groups[0];\n const tickObjectLength = tickObject && Object.keys(tickObject)!.length;\n for (let i = 0; i < tickObjectLength; i++) {\n const d1 = tickObject[i];\n d3Select(d1)\n .on('mouseover', d => {\n div.style('opacity', 0.9);\n div\n .html(originalDataArray[i])\n .style('left', d3Event.pageX + 'px')\n .style('top', d3Event.pageY - 28 + 'px');\n })\n .on('mouseout', d => {\n div.style('opacity', 0);\n });\n }\n}\n\n/**\n * Find the axis type of line chart and area chart from given data\n * @param points\n */\nexport function getXAxisType(points: ILineChartPoints[]): boolean {\n let isXAxisDateType: boolean = false;\n if (points && points.length > 0) {\n points.forEach((chartData: ILineChartPoints) => {\n if (chartData.data.length > 0) {\n isXAxisDateType = chartData.data[0].x instanceof Date;\n return;\n }\n });\n }\n return isXAxisDateType;\n}\n\n/**\n * Calculates Domain and range values for Date X axis.\n * This method calculates Area chart and line chart.\n * @export\n * @param {ILineChartPoints[]} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @param {Date[] | number[]} tickValues\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfDateForAreaChart(\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n tickValues: Date[] = [],\n): IDomainNRange {\n const sDate = d3Min(points, (point: ILineChartPoints) => {\n return d3Min(point.data, (item: ILineChartDataPoint) => {\n return item.x as Date;\n });\n })!;\n const lDate = d3Max(points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => {\n return item.x as Date;\n });\n })!;\n\n // Need to draw graph with given small and large date (Which Involves customization of date axis tick values)\n // That may be Either from given graph data or from prop 'tickValues' date values.\n // So, Finding smallest and largest dates\n const smallestDate = d3Min([...tickValues, sDate])!;\n const largestDate = d3Max([...tickValues, lDate])!;\n\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? { dStartValue: largestDate, dEndValue: smallestDate, rStartValue, rEndValue }\n : { dStartValue: smallestDate, dEndValue: largestDate, rStartValue, rEndValue };\n}\n\n/**\n * Calculates Domain and range values for Numeric X axis.\n * This method calculates Area cart and line chart.\n * @export\n * @param {ILineChartPoints[]} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfNumericForAreaChart(\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n): IDomainNRange {\n const xMin = d3Min(points, (point: ILineChartPoints) => {\n return d3Min(point.data, (item: ILineChartDataPoint) => item.x as number)!;\n })!;\n\n const xMax = d3Max(points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => {\n return item.x as number;\n });\n })!;\n\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? { dStartValue: xMax, dEndValue: xMin, rStartValue, rEndValue }\n : { dStartValue: xMin, dEndValue: xMax, rStartValue, rEndValue };\n}\n\n/**\n * Calculates Range values of x Axis string axis\n * For String axis, we need to give domain values (Not start and end array values)\n * So sending 0 as domain values. Domain will be handled at creation of string axis\n * For charts stacked bar chart, grouped vertical bar chart, HeatMapChart and Vertical bar chart\n * @export\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfXStringAxis(margins: IMargins, width: number, isRTL: boolean): IDomainNRange {\n const rMin = margins.left!;\n const rMax = width - margins.right!;\n return isRTL\n ? { dStartValue: 0, dEndValue: 0, rStartValue: rMax, rEndValue: rMin }\n : { dStartValue: 0, dEndValue: 0, rStartValue: rMin, rEndValue: rMax };\n}\n\n/**\n * Calculate domain and range values to the Vertical stacked bar chart - For Numeric axis\n * @export\n * @param {IDataPoint[]} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @param {number} barWidth\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfVSBCNumeric(\n points: IDataPoint[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n barWidth: number,\n): IDomainNRange {\n const xMin = d3Min(points, (point: IDataPoint) => point.x as number)!;\n const xMax = d3Max(points, (point: IDataPoint) => point.x as number)!;\n // barWidth / 2 - for to get tick middle of the bar\n const rMax = margins.left! + barWidth / 2;\n const rMin = width - margins.right! - barWidth / 2;\n return isRTL\n ? { dStartValue: xMax, dEndValue: xMin, rStartValue: rMax, rEndValue: rMin }\n : { dStartValue: xMin, dEndValue: xMax, rStartValue: rMax, rEndValue: rMin };\n}\n\n/**\n * Calculate domain and range values to the Vertical bar chart - For Numeric axis\n * @export\n * @param {IDataPoint[]} points\n * @param {IMargins} margins\n * @param {number} containerWidth\n * @param {boolean} isRTL\n * @param {number} barWidth\n * @returns {IDomainNRange}\n */\nexport function domainRageOfVerticalNumeric(\n points: IDataPoint[],\n margins: IMargins,\n containerWidth: number,\n isRTL: boolean,\n barWidth: number,\n): IDomainNRange {\n const xMax = d3Max(points, (point: IVerticalBarChartDataPoint) => point.x as number)!;\n const xMin = d3Min(points, (point: IVerticalBarChartDataPoint) => point.x as number)!;\n const rMin = margins.left! + barWidth;\n const rMax = containerWidth - margins.right! - barWidth;\n\n return isRTL\n ? { dStartValue: xMax, dEndValue: xMin, rStartValue: rMin, rEndValue: rMax }\n : { dStartValue: xMin, dEndValue: xMax, rStartValue: rMin, rEndValue: rMax };\n}\n\n/**\n * For creating X axis, need to calculate x axis domain and range values from given points.\n * This may vary based on chart type and type of x axis\n * So, this method will define which method need to call based on chart type and axis type.\n * @export\n * @param {*} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {ChartTypes} chartType\n * @param {boolean} isRTL\n * @param {XAxisTypes} xAxisType\n * @param {number} [barWidth]\n * @returns {IDomainNRange}\n */\nexport function getDomainNRangeValues(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n points: any,\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n): IDomainNRange {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n switch (chartType) {\n case ChartTypes.AreaChart:\n case ChartTypes.LineChart:\n domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);\n break;\n case ChartTypes.VerticalStackedBarChart:\n domainNRangeValue = domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth!);\n break;\n case ChartTypes.VerticalBarChart:\n domainNRangeValue = domainRageOfVerticalNumeric(points, margins, width, isRTL, barWidth!);\n break;\n default:\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n } else if (xAxisType === XAxisTypes.DateAxis) {\n switch (chartType) {\n case ChartTypes.AreaChart:\n case ChartTypes.LineChart:\n domainNRangeValue = domainRangeOfDateForAreaChart(points, margins, width, isRTL, tickValues! as Date[]);\n break;\n default:\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n } else {\n // String Axis type\n switch (chartType) {\n case ChartTypes.VerticalStackedBarChart:\n case ChartTypes.GroupedVerticalBarChart:\n case ChartTypes.VerticalBarChart:\n case ChartTypes.HeatMapChart:\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n break;\n default:\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n }\n return domainNRangeValue;\n}\n\n/**\n * Calculating start and ending values of the Area chart and LineChart\n * @export\n * @param {ILineChartPoints[]} points\n * @returns {{ startValue: number; endValue: number }}\n */\nexport function findNumericMinMaxOfY(points: ILineChartPoints[]): { startValue: number; endValue: number } {\n const yMax = d3Max(points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => item.y)!;\n })!;\n const yMin = d3Min(points, (point: ILineChartPoints) => {\n return d3Min(point.data, (item: ILineChartDataPoint) => item.y)!;\n })!;\n\n return {\n startValue: yMin,\n endValue: yMax,\n };\n}\n\n/**\n * Find the minimum and maximum values of the vertical stacked bar chart y axis data point. Used for create y axis.\n * @export\n * @param {IDataPoint[]} dataset\n * @returns {{ startValue: number; endValue: number }}\n */\nexport function findVSBCNumericMinMaxOfY(dataset: IDataPoint[]): { startValue: number; endValue: number } {\n const yMax = d3Max(dataset, (point: IDataPoint) => point.y)!;\n const yMin = d3Min(dataset, (point: IDataPoint) => point.y)!;\n\n return { startValue: yMin, endValue: yMax };\n}\n\n/**\n * Fins the min and max values of the vertical bar chart y axis data point.\n * @export\n * @param {IVerticalBarChartDataPoint[]} points\n * @returns {{ startValue: number; endValue: number }}\n */\nexport function findVerticalNumericMinMaxOfY(\n points: IVerticalBarChartDataPoint[],\n): { startValue: number; endValue: number } {\n const yMax = d3Max(points, (point: IVerticalBarChartDataPoint) => point.y)!;\n const yMin = d3Min(points, (point: IVerticalBarChartDataPoint) => point.y)!;\n\n return { startValue: yMin, endValue: yMax };\n}\n\n/**\n * For creating Y axis, need to calculate y axis domain values from given points. This may vary based on chart type.\n * So, this method will define which method need to call based on chart type to find out min and max values(For Domain).\n * For grouped vertical bar chart, Calculating yMax value in the base file and sending as MaxOfYVal to cartesian.\n * @export\n * @param {*} points\n * @param {ChartTypes} chartType\n * @returns {{ startValue: number; endValue: number }}\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getMinMaxOfYAxis(points: any, chartType: ChartTypes): { startValue: number; endValue: number } {\n let minMaxValues: { startValue: number; endValue: number };\n\n switch (chartType) {\n case ChartTypes.AreaChart:\n case ChartTypes.LineChart:\n minMaxValues = findNumericMinMaxOfY(points);\n break;\n case ChartTypes.VerticalStackedBarChart:\n minMaxValues = findVSBCNumericMinMaxOfY(points);\n break;\n case ChartTypes.VerticalBarChart:\n minMaxValues = findVerticalNumericMinMaxOfY(points);\n break;\n default:\n minMaxValues = { startValue: 0, endValue: 0 };\n }\n\n return minMaxValues;\n}\n\n/**\n * @param p string or number or Date\n *\n * This function takes the single data point of the x-aixs\n * and decides what is the x-axis\n */\nexport const getTypeOfAxis = (p: string | number | Date, isXAsix: boolean): XAxisTypes | YAxisType => {\n if (isXAsix) {\n switch (typeof p) {\n case 'string':\n return XAxisTypes.StringAxis;\n case 'number':\n return XAxisTypes.NumericAxis;\n default:\n return XAxisTypes.DateAxis;\n }\n } else {\n switch (typeof p) {\n case 'string':\n return YAxisType.StringAxis;\n case 'number':\n return YAxisType.NumericAxis;\n default:\n return YAxisType.DateAxis;\n }\n }\n};\n\n/**\n * we need to make sure that if we add any property to this, then\n * we need to also add that in pointTypes below and vise-versa\n */\n\nexport enum Points {\n circle,\n square,\n triangle,\n diamond,\n pyramid,\n hexagon,\n pentagon,\n octagon,\n}\n\nexport enum CustomPoints {\n dottedLine,\n}\n\nexport type PointTypes = {\n [key in number]: {\n /**\n * For certian shapes like pentagon, hexagon and octagon.\n * the width of the bouding box increase by the time of the\n * length of the side, so when we want to render a pentagon\n * having each side of length 7 units we need to decrease it's\n * units by width ratio so that the bounding box width of the pentagon\n * stays as 7\n */\n widthRatio: number;\n };\n};\n\n/**\n * we need to make sure that if we add any property to this, then\n * we need to also add that in enum Point and vise-versa\n */\n\nexport const pointTypes: PointTypes = {\n [Points.circle]: {\n widthRatio: 1,\n },\n [Points.square]: {\n widthRatio: 1,\n },\n [Points.triangle]: {\n widthRatio: 1,\n },\n [Points.diamond]: {\n widthRatio: 1,\n },\n [Points.pyramid]: {\n widthRatio: 1,\n },\n [Points.hexagon]: {\n widthRatio: 2,\n },\n [Points.pentagon]: {\n widthRatio: 1.168,\n },\n [Points.octagon]: {\n widthRatio: 2.414,\n },\n};\n\n/**\n * @param accessibleData accessible data\n * @param role string to define role of tag\n * @param isDataFocusable boolean\n * function returns the accessibility data object\n */\nexport const getAccessibleDataObject = (\n accessibleData?: IAccessibilityProps,\n role: string = 'text',\n isDataFocusable: boolean = true,\n) => {\n accessibleData = accessibleData ?? {};\n return {\n role,\n 'data-is-focusable': isDataFocusable,\n 'aria-label': accessibleData!.ariaLabel,\n 'aria-labelledby': accessibleData!.ariaLabelledBy,\n 'aria-describedby': accessibleData!.ariaDescribedBy,\n };\n};\n\ntype LocaleStringDataProps = number | string | Date | undefined;\nexport const convertToLocaleString = (data: LocaleStringDataProps, culture?: string): LocaleStringDataProps => {\n if (!data) {\n return data;\n }\n culture = culture || undefined;\n if (typeof data === 'number') {\n return data.toLocaleString(culture);\n }\n if (typeof data === 'string' && !window.isNaN(Number(data))) {\n const num = Number(data);\n return num.toLocaleString(culture);\n }\n return data;\n};\n"]}
1
+ {"version":3,"file":"utilities.js","sourceRoot":"../src/","sources":["utilities/utilities.ts"],"names":[],"mappings":"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","sourcesContent":["import { axisRight as d3AxisRight, axisBottom as d3AxisBottom, axisLeft as d3AxisLeft, Axis as D3Axis } from 'd3-axis';\nimport { max as d3Max, min as d3Min } from 'd3-array';\nimport { scaleLinear as d3ScaleLinear, scaleTime as d3ScaleTime, scaleBand as d3ScaleBand } from 'd3-scale';\nimport { select as d3Select, event as d3Event } from 'd3-selection';\nimport { format as d3Format } from 'd3-format';\nimport * as d3TimeFormat from 'd3-time-format';\nimport {\n IAccessibilityProps,\n IEventsAnnotationProps,\n ILineChartPoints,\n ILineChartDataPoint,\n IDataPoint,\n IVerticalBarChartDataPoint,\n} from '../index';\n\nexport type NumericAxis = D3Axis<number | { valueOf(): number }>;\nexport type StringAxis = D3Axis<string>;\n\nexport enum ChartTypes {\n AreaChart,\n LineChart,\n VerticalBarChart,\n VerticalStackedBarChart,\n GroupedVerticalBarChart,\n HeatMapChart,\n}\n\nexport enum XAxisTypes {\n NumericAxis,\n DateAxis,\n StringAxis,\n}\n\nexport enum YAxisType {\n NumericAxis,\n DateAxis,\n StringAxis,\n}\n\nexport interface IWrapLabelProps {\n node: SVGElement | null;\n xAxis: NumericAxis | StringAxis;\n noOfCharsToTruncate: number;\n showXAxisLablesTooltip: boolean;\n}\n\nexport interface IAxisData {\n yAxisDomainValues: number[];\n}\n\nexport interface IMargins {\n /**\n * left margin for the chart.\n * @default 40\n */\n left?: number;\n /**\n * Right margin for the chart.\n * @default 20\n */\n right?: number;\n /**\n * Top margin for the chart.\n * @default 20\n */\n top?: number;\n /**\n * Bottom margin for the chart.\n * @default 35\n */\n bottom?: number;\n}\n\nexport interface IDomainNRange {\n dStartValue: number | Date;\n dEndValue: number | Date;\n rStartValue: number;\n rEndValue: number;\n}\n\nexport interface IXAxisParams {\n domainNRangeValues: IDomainNRange;\n xAxisElement?: SVGElement | null;\n xAxisCount?: number;\n showRoundOffXTickValues?: boolean;\n xAxistickSize?: number;\n tickPadding?: number;\n xAxisPadding?: number;\n}\nexport interface ITickParams {\n tickValues?: Date[] | number[];\n tickFormat?: string;\n}\n\nexport interface IYAxisParams {\n yMinMaxValues?: {\n startValue: number;\n endValue: number;\n };\n maxOfYVal?: number;\n margins: IMargins;\n containerWidth: number;\n containerHeight: number;\n yAxisElement?: SVGElement | null;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxisTickFormat?: any;\n yAxisTickCount: number;\n yMaxValue?: number;\n yMinValue?: number;\n tickPadding?: number;\n eventAnnotationProps?: IEventsAnnotationProps;\n eventLabelHeight?: number;\n yAxisPadding?: number;\n}\n\n/**\n * Create Numeric X axis\n * @export\n * @param {IXAxisParams} xAxisParams\n */\nexport function createNumericXAxis(xAxisParams: IXAxisParams, culture?: string) {\n const {\n domainNRangeValues,\n showRoundOffXTickValues = false,\n xAxistickSize = 6,\n tickPadding = 10,\n xAxisCount = 6,\n xAxisElement,\n } = xAxisParams;\n const xAxisScale = d3ScaleLinear()\n .domain([domainNRangeValues.dStartValue, domainNRangeValues.dEndValue])\n .range([domainNRangeValues.rStartValue, domainNRangeValues.rEndValue]);\n showRoundOffXTickValues && xAxisScale.nice();\n\n const xAxis = d3AxisBottom(xAxisScale)\n .tickSize(xAxistickSize)\n .tickPadding(tickPadding)\n .ticks(xAxisCount)\n .tickSizeOuter(0)\n .tickFormat((domainValue, index) => {\n const xAxisValue = typeof domainValue === 'number' ? domainValue : domainValue.valueOf();\n return convertToLocaleString(xAxisValue, culture) as string;\n });\n if (xAxisElement) {\n d3Select(xAxisElement).call(xAxis).selectAll('text').attr('aria-hidden', 'true');\n }\n return xAxisScale;\n}\n\n/**\n * Creating Date x axis of the Chart\n * @export\n * @param {IXAxisParams} xAxisParams\n * @param {ITickParams} tickParams\n */\nexport function createDateXAxis(xAxisParams: IXAxisParams, tickParams: ITickParams) {\n const { domainNRangeValues, xAxisElement, tickPadding = 6, xAxistickSize = 6, xAxisCount = 6 } = xAxisParams;\n const xAxisScale = d3ScaleTime()\n .domain([domainNRangeValues.dStartValue, domainNRangeValues.dEndValue])\n .range([domainNRangeValues.rStartValue, domainNRangeValues.rEndValue]);\n const xAxis = d3AxisBottom(xAxisScale).tickSize(xAxistickSize).tickPadding(tickPadding).ticks(xAxisCount);\n tickParams.tickValues ? xAxis.tickValues(tickParams.tickValues) : '';\n tickParams.tickFormat ? xAxis.tickFormat(d3TimeFormat.timeFormat(tickParams.tickFormat)) : '';\n if (xAxisElement) {\n d3Select(xAxisElement).call(xAxis).selectAll('text').attr('aria-hidden', 'true');\n }\n return xAxisScale;\n}\n\n/**\n * Create String X axis\n * Currently using for only Vetical stacked bar chart and grouped vertical bar chart\n * @export\n * @param {IXAxisParams} xAxisParams\n * @param {ITickParams} tickParams\n * @param {string[]} dataset\n * @returns\n */\nexport function createStringXAxis(\n xAxisParams: IXAxisParams,\n tickParams: ITickParams,\n dataset: string[],\n culture?: string,\n) {\n const { domainNRangeValues, xAxisCount = 6, xAxistickSize = 6, tickPadding = 10, xAxisPadding = 0.1 } = xAxisParams;\n const xAxisScale = d3ScaleBand()\n .domain(dataset!)\n .range([domainNRangeValues.rStartValue, domainNRangeValues.rEndValue])\n .padding(xAxisPadding);\n const xAxis = d3AxisBottom(xAxisScale)\n .tickSize(xAxistickSize)\n .tickPadding(tickPadding)\n .ticks(xAxisCount)\n .tickFormat((x: string, index: number) => {\n return convertToLocaleString(dataset[index], culture) as string;\n });\n\n if (xAxisParams.xAxisElement) {\n d3Select(xAxisParams.xAxisElement).call(xAxis).selectAll('text').attr('aria-hidden', 'true');\n }\n return xAxisScale;\n}\n\n/**\n * This method used for creating data points for the y axis.\n * @export\n * @param {number} maxVal\n * @param {number} minVal\n * @param {number} splitInto\n * @returns {number[]}\n */\nexport function prepareDatapoints(maxVal: number, minVal: number, splitInto: number): number[] {\n const val = Math.ceil((maxVal - minVal) / splitInto);\n const dataPointsArray: number[] = [minVal, minVal + val];\n while (dataPointsArray[dataPointsArray.length - 1] < maxVal) {\n dataPointsArray.push(dataPointsArray[dataPointsArray.length - 1] + val);\n }\n return dataPointsArray;\n}\n\n/**\n * Creating Numeric Y axis of the chart\n * @export\n * @param {IYAxisParams} yAxisParams\n * @param {boolean} isRtl\n */\nexport function createYAxis(yAxisParams: IYAxisParams, isRtl: boolean, axisData: IAxisData) {\n const {\n yMinMaxValues = { startValue: 0, endValue: 0 },\n yAxisElement = null,\n yMaxValue = 0,\n yMinValue = 0,\n containerHeight,\n containerWidth,\n margins,\n tickPadding = 12,\n maxOfYVal = 0,\n yAxisTickFormat,\n yAxisTickCount = 4,\n eventAnnotationProps,\n eventLabelHeight,\n } = yAxisParams;\n\n // maxOfYVal coming from only area chart and Grouped vertical bar chart(Calculation done at base file)\n const tempVal = maxOfYVal || yMinMaxValues.endValue;\n const finalYmax = tempVal > yMaxValue ? tempVal : yMaxValue!;\n const finalYmin = yMinMaxValues.startValue < yMinValue ? 0 : yMinValue!;\n const domainValues = prepareDatapoints(finalYmax, finalYmin, yAxisTickCount);\n const yAxisScale = d3ScaleLinear()\n .domain([finalYmin, domainValues[domainValues.length - 1]])\n .range([containerHeight - margins.bottom!, margins.top! + (eventAnnotationProps! ? eventLabelHeight! : 0)]);\n const axis = isRtl ? d3AxisRight(yAxisScale) : d3AxisLeft(yAxisScale);\n const yAxis = axis\n .tickPadding(tickPadding)\n .tickValues(domainValues)\n .tickSizeInner(-(containerWidth - margins.left! - margins.right!));\n yAxisTickFormat ? yAxis.tickFormat(yAxisTickFormat) : yAxis.tickFormat(d3Format('.2~s'));\n yAxisElement ? d3Select(yAxisElement).call(yAxis).selectAll('text').attr('aria-hidden', 'true') : '';\n axisData.yAxisDomainValues = domainValues;\n return yAxisScale;\n}\n\n/**\n * Creating String Y axis of the chart\n * @param yAxisParams\n * @param dataPoints\n * @param isRtl\n */\nexport const createStringYAxis = (yAxisParams: IYAxisParams, dataPoints: string[], isRtl: boolean) => {\n const { containerHeight, tickPadding = 12, margins, yAxisTickFormat, yAxisElement, yAxisPadding = 0 } = yAxisParams;\n const yAxisScale = d3ScaleBand()\n .domain(dataPoints)\n .range([containerHeight - margins.bottom!, margins.top!])\n .padding(yAxisPadding);\n const axis = isRtl ? d3AxisRight(yAxisScale) : d3AxisLeft(yAxisScale);\n const yAxis = axis.tickPadding(tickPadding).tickValues(dataPoints).tickSize(0);\n if (yAxisTickFormat) {\n yAxis.tickFormat(yAxisTickFormat);\n }\n yAxisElement ? d3Select(yAxisElement).call(yAxis).selectAll('text') : '';\n return yAxisScale;\n};\n\n/**\n * For area chart and line chart, while displaying stackCallout, Need to form a callout data object.\n * This methos creates an object for those 2 charts.\n * @param values\n */\n\ntype DataPoint = {\n legend: string;\n y: number;\n x: number | Date | string;\n color: string;\n yAxisCalloutData: string;\n index?: number;\n callOutAccessibilityData?: IAccessibilityProps;\n};\n\nexport function calloutData(values: (ILineChartPoints & { index?: number })[]) {\n let combinedResult: {\n legend: string;\n y: number;\n x: number | Date | string;\n color: string;\n yAxisCalloutData?: string | { [id: string]: number };\n callOutAccessibilityData?: IAccessibilityProps;\n }[] = [];\n\n values.forEach((element: { data: ILineChartDataPoint[]; legend: string; color: string; index?: number }) => {\n const elements = element.data\n .filter((ele: ILineChartDataPoint) => !ele.hideCallout)\n .map((ele: ILineChartDataPoint) => {\n return { legend: element.legend, ...ele, color: element.color, index: element.index };\n });\n combinedResult = combinedResult.concat(elements);\n });\n\n const result: { x: number | Date | string; values: { legend: string; y: number }[] }[] = [];\n combinedResult.forEach((e1: DataPoint, index: number) => {\n e1.x = e1.x instanceof Date ? e1.x.getTime() : e1.x;\n const filteredValues = [\n {\n legend: e1.legend,\n y: e1.y,\n color: e1.color,\n yAxisCalloutData: e1.yAxisCalloutData,\n callOutAccessibilityData: e1.callOutAccessibilityData,\n index: e1.index,\n },\n ];\n combinedResult.slice(index + 1).forEach((e2: DataPoint) => {\n e2.x = e2.x instanceof Date ? e2.x.getTime() : e2.x;\n if (e1.x === e2.x) {\n filteredValues.push({\n legend: e2.legend,\n y: e2.y,\n color: e2.color,\n yAxisCalloutData: e2.yAxisCalloutData,\n callOutAccessibilityData: e2.callOutAccessibilityData,\n index: e2.index,\n });\n }\n });\n result.push({ x: e1.x, values: filteredValues });\n });\n return getUnique(result, 'x');\n}\n\nexport function getUnique(\n arr: { x: number | Date | string; values: { legend: string; y: number }[] }[],\n comp: string | number,\n) {\n const unique = arr\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .map((e: { [x: string]: any }) => e[comp])\n // store the keys of the unique objects\n .map((e: string, i: number, final: string[]) => final.indexOf(e) === i && i)\n // eliminate the dead keys & store unique objects\n .filter((e: number) => arr[e])\n .map((e: number) => arr[e]);\n return unique;\n}\n\n/**\n * This function takes two paramerter\n * 1. an array of strings\n * 2. a string value\n * if the value is not present in the given array then it will return the new\n * array by appending the value to the present arrray.\n *\n * if the value is already present in the given array then it will return the new\n * array by deleteing the value from the the array\n * @param array\n * @param value\n */\nexport function silceOrAppendToArray(array: string[], value: string): string[] {\n const pos = array.indexOf(value);\n if (pos === -1) {\n return [...array, value];\n } else {\n return array.slice(0, pos).concat(array.slice(pos + 1));\n }\n}\n\n/**\n * This method used for wrapping of x axis labels (tick values).\n * It breaks down given text value by space separated and calculates the total height needed to display all the words.\n * That value = removal value. This value needs to be remove from total svg height, svg will shrink and\n * total text will be displayed.\n * @export\n * @param {IWrapLabelProps} wrapLabelProps\n * @returns\n */\nexport function createWrapOfXLabels(wrapLabelProps: IWrapLabelProps) {\n const { node, xAxis, noOfCharsToTruncate, showXAxisLablesTooltip } = wrapLabelProps;\n if (node === null) {\n return;\n }\n const axisNode = d3Select(node).call(xAxis);\n let removeVal = 0;\n const width = 10;\n const arr: number[] = [];\n axisNode.selectAll('.tick text').each(function () {\n const text = d3Select(this);\n const totalWord = text.text();\n const truncatedWord = `${text.text().slice(0, noOfCharsToTruncate)}...`;\n const totalWordLength = text.text().length;\n const words = text.text().split(/\\s+/).reverse();\n arr.push(words.length);\n let word: string = '';\n let line: string[] = [];\n let lineNumber: number = 0;\n const lineHeight = 1.1; // ems\n const y = text.attr('y');\n const dy = parseFloat(text.attr('dy'));\n let tspan = text\n .text(null)\n .append('tspan')\n .attr('x', 0)\n .attr('y', y)\n .attr('id', 'BaseSpan')\n .attr('dy', dy + 'em')\n .attr('data-', totalWord);\n\n if (showXAxisLablesTooltip && totalWordLength > noOfCharsToTruncate) {\n tspan = text\n .append('tspan')\n .attr('id', 'showDots')\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(truncatedWord);\n } else if (showXAxisLablesTooltip && totalWordLength <= noOfCharsToTruncate) {\n tspan = text\n .append('tspan')\n .attr('id', 'LessLength')\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(totalWord);\n } else {\n while ((word = words.pop()!)) {\n line.push(word);\n tspan.text(line.join(' '));\n if (tspan.node()!.getComputedTextLength() > width && line.length > 1) {\n line.pop();\n tspan.text(line.join(' '));\n line = [word];\n tspan = text\n .append('tspan')\n .attr('id', 'WordBreakId')\n .attr('x', 0)\n .attr('y', y)\n .attr('dy', ++lineNumber * lineHeight + dy + 'em')\n .text(word);\n }\n }\n const maxDigit = Math.max(...arr);\n let maxHeight: number = 12; // intial value to render corretly first time\n axisNode.selectAll('text').each(() => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const outerHTMLElement = document.getElementById('WordBreakId') as any;\n const BoxCordinates = outerHTMLElement && outerHTMLElement.getBoundingClientRect();\n const boxHeight = BoxCordinates && BoxCordinates.height;\n if (boxHeight > maxHeight) {\n maxHeight = boxHeight;\n }\n });\n // If we take directly maxDigit * maxheight, then it will show more height between x axis tick values and bottom.\n // To avoid this, reducing maxDigit value by removing some digit based on legth of word.\n let removeDigit: number = 4;\n if (maxDigit <= 2) {\n removeDigit = 1;\n } else if (maxDigit > 2 && maxDigit <= 6) {\n removeDigit = 2;\n } else if (maxDigit > 6 && maxDigit <= 9) {\n removeDigit = 3;\n }\n removeVal = (maxDigit - removeDigit) * maxHeight;\n }\n });\n return removeVal > 0 ? removeVal : 0;\n}\n\n/**\n * This method displays a tooltip to the x axis lables(tick values)\n * when prop 'showXAxisLablesTooltip' enables to the respected chart.\n * On hover of the truncated word(at x axis labels tick), a tooltip will be appeared.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function tooltipOfXAxislabels(xAxistooltipProps: any) {\n const { tooltipCls, xAxis, id } = xAxistooltipProps;\n if (xAxis === null) {\n return null;\n }\n const div = d3Select('body').append('div').attr('id', id).attr('class', tooltipCls).style('opacity', 0);\n const aa = xAxis!.selectAll('#BaseSpan')._groups[0];\n const baseSpanLength = aa && Object.keys(aa)!.length;\n const originalDataArray: string[] = [];\n for (let i = 0; i < baseSpanLength; i++) {\n const originalData = aa[i].dataset && (Object.values(aa[i].dataset)[0] as string);\n originalDataArray.push(originalData);\n }\n const tickObject = xAxis!.selectAll('.tick')._groups[0];\n const tickObjectLength = tickObject && Object.keys(tickObject)!.length;\n for (let i = 0; i < tickObjectLength; i++) {\n const d1 = tickObject[i];\n d3Select(d1)\n .on('mouseover', d => {\n div.style('opacity', 0.9);\n div\n .html(originalDataArray[i])\n .style('left', d3Event.pageX + 'px')\n .style('top', d3Event.pageY - 28 + 'px');\n })\n .on('mouseout', d => {\n div.style('opacity', 0);\n });\n }\n}\n\n/**\n * Find the axis type of line chart and area chart from given data\n * @param points\n */\nexport function getXAxisType(points: ILineChartPoints[]): boolean {\n let isXAxisDateType: boolean = false;\n if (points && points.length > 0) {\n points.forEach((chartData: ILineChartPoints) => {\n if (chartData.data.length > 0) {\n isXAxisDateType = chartData.data[0].x instanceof Date;\n return;\n }\n });\n }\n return isXAxisDateType;\n}\n\n/**\n * Calculates Domain and range values for Date X axis.\n * This method calculates Area chart and line chart.\n * @export\n * @param {ILineChartPoints[]} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @param {Date[] | number[]} tickValues\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfDateForAreaChart(\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n tickValues: Date[] = [],\n): IDomainNRange {\n const sDate = d3Min(points, (point: ILineChartPoints) => {\n return d3Min(point.data, (item: ILineChartDataPoint) => {\n return item.x as Date;\n });\n })!;\n const lDate = d3Max(points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => {\n return item.x as Date;\n });\n })!;\n\n // Need to draw graph with given small and large date (Which Involves customization of date axis tick values)\n // That may be Either from given graph data or from prop 'tickValues' date values.\n // So, Finding smallest and largest dates\n const smallestDate = d3Min([...tickValues, sDate])!;\n const largestDate = d3Max([...tickValues, lDate])!;\n\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? { dStartValue: largestDate, dEndValue: smallestDate, rStartValue, rEndValue }\n : { dStartValue: smallestDate, dEndValue: largestDate, rStartValue, rEndValue };\n}\n\n/**\n * Calculates Domain and range values for Numeric X axis.\n * This method calculates Area cart and line chart.\n * @export\n * @param {ILineChartPoints[]} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfNumericForAreaChart(\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n): IDomainNRange {\n const xMin = d3Min(points, (point: ILineChartPoints) => {\n return d3Min(point.data, (item: ILineChartDataPoint) => item.x as number)!;\n })!;\n\n const xMax = d3Max(points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => {\n return item.x as number;\n });\n })!;\n\n const rStartValue = margins.left!;\n const rEndValue = width - margins.right!;\n\n return isRTL\n ? { dStartValue: xMax, dEndValue: xMin, rStartValue, rEndValue }\n : { dStartValue: xMin, dEndValue: xMax, rStartValue, rEndValue };\n}\n\n/**\n * Calculates Range values of x Axis string axis\n * For String axis, we need to give domain values (Not start and end array values)\n * So sending 0 as domain values. Domain will be handled at creation of string axis\n * For charts stacked bar chart, grouped vertical bar chart, HeatMapChart and Vertical bar chart\n * @export\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfXStringAxis(margins: IMargins, width: number, isRTL: boolean): IDomainNRange {\n const rMin = margins.left!;\n const rMax = width - margins.right!;\n return isRTL\n ? { dStartValue: 0, dEndValue: 0, rStartValue: rMax, rEndValue: rMin }\n : { dStartValue: 0, dEndValue: 0, rStartValue: rMin, rEndValue: rMax };\n}\n\n/**\n * Calculate domain and range values to the Vertical stacked bar chart - For Numeric axis\n * @export\n * @param {IDataPoint[]} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {boolean} isRTL\n * @param {number} barWidth\n * @returns {IDomainNRange}\n */\nexport function domainRangeOfVSBCNumeric(\n points: IDataPoint[],\n margins: IMargins,\n width: number,\n isRTL: boolean,\n barWidth: number,\n): IDomainNRange {\n const xMin = d3Min(points, (point: IDataPoint) => point.x as number)!;\n const xMax = d3Max(points, (point: IDataPoint) => point.x as number)!;\n // barWidth / 2 - for to get tick middle of the bar\n const rMax = margins.left! + barWidth / 2;\n const rMin = width - margins.right! - barWidth / 2;\n return isRTL\n ? { dStartValue: xMax, dEndValue: xMin, rStartValue: rMax, rEndValue: rMin }\n : { dStartValue: xMin, dEndValue: xMax, rStartValue: rMax, rEndValue: rMin };\n}\n\n/**\n * Calculate domain and range values to the Vertical bar chart - For Numeric axis\n * @export\n * @param {IDataPoint[]} points\n * @param {IMargins} margins\n * @param {number} containerWidth\n * @param {boolean} isRTL\n * @param {number} barWidth\n * @returns {IDomainNRange}\n */\nexport function domainRageOfVerticalNumeric(\n points: IDataPoint[],\n margins: IMargins,\n containerWidth: number,\n isRTL: boolean,\n barWidth: number,\n): IDomainNRange {\n const xMax = d3Max(points, (point: IVerticalBarChartDataPoint) => point.x as number)!;\n const xMin = d3Min(points, (point: IVerticalBarChartDataPoint) => point.x as number)!;\n const rMin = margins.left! + barWidth;\n const rMax = containerWidth - margins.right! - barWidth;\n\n return isRTL\n ? { dStartValue: xMax, dEndValue: xMin, rStartValue: rMin, rEndValue: rMax }\n : { dStartValue: xMin, dEndValue: xMax, rStartValue: rMin, rEndValue: rMax };\n}\n\n/**\n * For creating X axis, need to calculate x axis domain and range values from given points.\n * This may vary based on chart type and type of x axis\n * So, this method will define which method need to call based on chart type and axis type.\n * @export\n * @param {*} points\n * @param {IMargins} margins\n * @param {number} width\n * @param {ChartTypes} chartType\n * @param {boolean} isRTL\n * @param {XAxisTypes} xAxisType\n * @param {number} [barWidth]\n * @returns {IDomainNRange}\n */\nexport function getDomainNRangeValues(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n points: any,\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n): IDomainNRange {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n switch (chartType) {\n case ChartTypes.AreaChart:\n case ChartTypes.LineChart:\n domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);\n break;\n case ChartTypes.VerticalStackedBarChart:\n domainNRangeValue = domainRangeOfVSBCNumeric(points, margins, width, isRTL, barWidth!);\n break;\n case ChartTypes.VerticalBarChart:\n domainNRangeValue = domainRageOfVerticalNumeric(points, margins, width, isRTL, barWidth!);\n break;\n default:\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n } else if (xAxisType === XAxisTypes.DateAxis) {\n switch (chartType) {\n case ChartTypes.AreaChart:\n case ChartTypes.LineChart:\n domainNRangeValue = domainRangeOfDateForAreaChart(points, margins, width, isRTL, tickValues! as Date[]);\n break;\n default:\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n } else {\n // String Axis type\n switch (chartType) {\n case ChartTypes.VerticalStackedBarChart:\n case ChartTypes.GroupedVerticalBarChart:\n case ChartTypes.VerticalBarChart:\n case ChartTypes.HeatMapChart:\n domainNRangeValue = domainRangeOfXStringAxis(margins, width, isRTL);\n break;\n default:\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n }\n return domainNRangeValue;\n}\n\n/**\n * Calculating start and ending values of the Area chart and LineChart\n * @export\n * @param {ILineChartPoints[]} points\n * @returns {{ startValue: number; endValue: number }}\n */\nexport function findNumericMinMaxOfY(points: ILineChartPoints[]): { startValue: number; endValue: number } {\n const yMax = d3Max(points, (point: ILineChartPoints) => {\n return d3Max(point.data, (item: ILineChartDataPoint) => item.y)!;\n })!;\n const yMin = d3Min(points, (point: ILineChartPoints) => {\n return d3Min(point.data, (item: ILineChartDataPoint) => item.y)!;\n })!;\n\n return {\n startValue: yMin,\n endValue: yMax,\n };\n}\n\n/**\n * Find the minimum and maximum values of the vertical stacked bar chart y axis data point. Used for create y axis.\n * @export\n * @param {IDataPoint[]} dataset\n * @returns {{ startValue: number; endValue: number }}\n */\nexport function findVSBCNumericMinMaxOfY(dataset: IDataPoint[]): { startValue: number; endValue: number } {\n const yMax = d3Max(dataset, (point: IDataPoint) => point.y)!;\n const yMin = d3Min(dataset, (point: IDataPoint) => point.y)!;\n\n return { startValue: yMin, endValue: yMax };\n}\n\n/**\n * Fins the min and max values of the vertical bar chart y axis data point.\n * @export\n * @param {IVerticalBarChartDataPoint[]} points\n * @returns {{ startValue: number; endValue: number }}\n */\nexport function findVerticalNumericMinMaxOfY(\n points: IVerticalBarChartDataPoint[],\n): { startValue: number; endValue: number } {\n const yMax = d3Max(points, (point: IVerticalBarChartDataPoint) => point.y)!;\n const yMin = d3Min(points, (point: IVerticalBarChartDataPoint) => point.y)!;\n\n return { startValue: yMin, endValue: yMax };\n}\n\n/**\n * For creating Y axis, need to calculate y axis domain values from given points. This may vary based on chart type.\n * So, this method will define which method need to call based on chart type to find out min and max values(For Domain).\n * For grouped vertical bar chart, Calculating yMax value in the base file and sending as MaxOfYVal to cartesian.\n * @export\n * @param {*} points\n * @param {ChartTypes} chartType\n * @returns {{ startValue: number; endValue: number }}\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getMinMaxOfYAxis(points: any, chartType: ChartTypes): { startValue: number; endValue: number } {\n let minMaxValues: { startValue: number; endValue: number };\n\n switch (chartType) {\n case ChartTypes.AreaChart:\n case ChartTypes.LineChart:\n minMaxValues = findNumericMinMaxOfY(points);\n break;\n case ChartTypes.VerticalStackedBarChart:\n minMaxValues = findVSBCNumericMinMaxOfY(points);\n break;\n case ChartTypes.VerticalBarChart:\n minMaxValues = findVerticalNumericMinMaxOfY(points);\n break;\n default:\n minMaxValues = { startValue: 0, endValue: 0 };\n }\n\n return minMaxValues;\n}\n\n/**\n * @param p string or number or Date\n *\n * This function takes the single data point of the x-aixs\n * and decides what is the x-axis\n */\nexport const getTypeOfAxis = (p: string | number | Date, isXAsix: boolean): XAxisTypes | YAxisType => {\n if (isXAsix) {\n switch (typeof p) {\n case 'string':\n return XAxisTypes.StringAxis;\n case 'number':\n return XAxisTypes.NumericAxis;\n default:\n return XAxisTypes.DateAxis;\n }\n } else {\n switch (typeof p) {\n case 'string':\n return YAxisType.StringAxis;\n case 'number':\n return YAxisType.NumericAxis;\n default:\n return YAxisType.DateAxis;\n }\n }\n};\n\n/**\n * we need to make sure that if we add any property to this, then\n * we need to also add that in pointTypes below and vise-versa\n */\n\nexport enum Points {\n circle,\n square,\n triangle,\n diamond,\n pyramid,\n hexagon,\n pentagon,\n octagon,\n}\n\nexport enum CustomPoints {\n dottedLine,\n}\n\nexport type PointTypes = {\n [key in number]: {\n /**\n * For certian shapes like pentagon, hexagon and octagon.\n * the width of the bouding box increase by the time of the\n * length of the side, so when we want to render a pentagon\n * having each side of length 7 units we need to decrease it's\n * units by width ratio so that the bounding box width of the pentagon\n * stays as 7\n */\n widthRatio: number;\n };\n};\n\n/**\n * we need to make sure that if we add any property to this, then\n * we need to also add that in enum Point and vise-versa\n */\n\nexport const pointTypes: PointTypes = {\n [Points.circle]: {\n widthRatio: 1,\n },\n [Points.square]: {\n widthRatio: 1,\n },\n [Points.triangle]: {\n widthRatio: 1,\n },\n [Points.diamond]: {\n widthRatio: 1,\n },\n [Points.pyramid]: {\n widthRatio: 1,\n },\n [Points.hexagon]: {\n widthRatio: 2,\n },\n [Points.pentagon]: {\n widthRatio: 1.168,\n },\n [Points.octagon]: {\n widthRatio: 2.414,\n },\n};\n\n/**\n * @param accessibleData accessible data\n * @param role string to define role of tag\n * @param isDataFocusable boolean\n * function returns the accessibility data object\n */\nexport const getAccessibleDataObject = (\n accessibleData?: IAccessibilityProps,\n role: string = 'text',\n isDataFocusable: boolean = true,\n) => {\n accessibleData = accessibleData ?? {};\n return {\n role,\n 'data-is-focusable': isDataFocusable,\n 'aria-label': accessibleData!.ariaLabel,\n 'aria-labelledby': accessibleData!.ariaLabelledBy,\n 'aria-describedby': accessibleData!.ariaDescribedBy,\n };\n};\n\ntype LocaleStringDataProps = number | string | Date | undefined;\nexport const convertToLocaleString = (data: LocaleStringDataProps, culture?: string): LocaleStringDataProps => {\n if (!data) {\n return data;\n }\n culture = culture || undefined;\n if (typeof data === 'number') {\n return data.toLocaleString(culture);\n }\n if (typeof data === 'string' && !window.isNaN(Number(data))) {\n const num = Number(data);\n return num.toLocaleString(culture);\n }\n return data;\n};\n"]}
@@ -1,6 +1,6 @@
1
1
  define(["require", "exports", "@fluentui/set-version"], function (require, exports, set_version_1) {
2
2
  "use strict";
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- set_version_1.setVersion('@fluentui/react-charting', '5.6.6');
4
+ set_version_1.setVersion('@fluentui/react-charting', '5.6.10');
5
5
  });
6
6
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":";;;IAGA,wBAAU,CAAC,0BAA0B,EAAE,OAAO,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.6.6');"]}
1
+ {"version":3,"file":"version.js","sourceRoot":"../src/","sources":["version.ts"],"names":[],"mappings":";;;IAGA,wBAAU,CAAC,0BAA0B,EAAE,QAAQ,CAAC,CAAC","sourcesContent":["// Do not modify this file; it is generated as part of publish.\n// The checked in version is a placeholder only and will not be updated.\nimport { setVersion } from '@fluentui/set-version';\nsetVersion('@fluentui/react-charting', '5.6.10');"]}
@@ -185,8 +185,7 @@ var CartesianChartBase = /** @class */ (function (_super) {
185
185
  width: this.state.containerWidth,
186
186
  height: this.state.containerHeight,
187
187
  };
188
- var children = this.props.children(tslib_1.__assign(tslib_1.__assign({}, this.state), { xScale: xScale,
189
- yScale: yScale }));
188
+ var children = this.props.children(tslib_1.__assign(tslib_1.__assign({}, this.state), { xScale: xScale, yScale: yScale }));
190
189
  var focusDirection;
191
190
  if (this.props.focusZoneDirection === react_focus_1.FocusZoneDirection.vertical) {
192
191
  focusDirection = this.props.focusZoneDirection;