@fluentui/react-charting 5.23.59 → 5.23.61
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.json +55 -1
- package/CHANGELOG.md +24 -2
- package/dist/react-charting.d.ts +17 -1
- package/dist/react-charting.js +1 -1
- package/dist/react-charting.min.js +1 -1
- package/etc/react-charting.api.md +4 -0
- package/lib/components/AreaChart/AreaChart.base.d.ts +3 -1
- package/lib/components/AreaChart/AreaChart.base.js +8 -2
- package/lib/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.d.ts +1 -1
- package/lib/components/DeclarativeChart/DeclarativeChart.js +36 -8
- package/lib/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib/components/DeclarativeChart/PlotlySchema.d.ts +1 -0
- package/lib/components/DeclarativeChart/PlotlySchema.js.map +1 -1
- package/lib/components/DeclarativeChart/index.d.ts +0 -1
- package/lib/components/DeclarativeChart/index.js.map +1 -1
- package/lib/components/DonutChart/DonutChart.base.d.ts +3 -1
- package/lib/components/DonutChart/DonutChart.base.js +8 -2
- package/lib/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib/components/GaugeChart/GaugeChart.base.d.ts +3 -1
- package/lib/components/GaugeChart/GaugeChart.base.js +7 -1
- package/lib/components/GaugeChart/GaugeChart.base.js.map +1 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +3 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +7 -1
- package/lib/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib/components/HeatMapChart/HeatMapChart.base.d.ts +3 -1
- package/lib/components/HeatMapChart/HeatMapChart.base.js +8 -2
- package/lib/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +3 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +7 -1
- package/lib/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
- package/lib/components/Legends/Legends.base.d.ts +8 -2
- package/lib/components/Legends/Legends.base.js +12 -1
- package/lib/components/Legends/Legends.base.js.map +1 -1
- package/lib/components/Legends/Legends.styles.d.ts +8 -0
- package/lib/components/Legends/Legends.styles.js +21 -8
- package/lib/components/Legends/Legends.styles.js.map +1 -1
- package/lib/components/Legends/Legends.types.d.ts +15 -1
- package/lib/components/Legends/Legends.types.js.map +1 -1
- package/lib/components/LineChart/LineChart.base.d.ts +3 -1
- package/lib/components/LineChart/LineChart.base.js +7 -1
- package/lib/components/LineChart/LineChart.base.js.map +1 -1
- package/lib/components/SankeyChart/SankeyChart.base.d.ts +2 -1
- package/lib/components/SankeyChart/SankeyChart.base.js +4 -0
- package/lib/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.d.ts +3 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js +7 -1
- package/lib/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +3 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +7 -1
- package/lib/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib/index.d.ts +2 -2
- package/lib/index.js.map +1 -1
- package/lib/types/IDataPoint.d.ts +10 -0
- package/lib/types/IDataPoint.js.map +1 -1
- package/lib/utilities/image-export-utils.d.ts +13 -0
- package/lib/{components/DeclarativeChart/imageExporter.js → utilities/image-export-utils.js} +65 -63
- package/lib/utilities/image-export-utils.js.map +1 -0
- package/lib/utilities/utilities.d.ts +2 -0
- package/lib/utilities/utilities.js +44 -0
- package/lib/utilities/utilities.js.map +1 -1
- package/lib-amd/components/AreaChart/AreaChart.base.d.ts +3 -1
- package/lib-amd/components/AreaChart/AreaChart.base.js +7 -2
- package/lib-amd/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.d.ts +1 -1
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js +37 -8
- package/lib-amd/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/PlotlySchema.d.ts +1 -0
- package/lib-amd/components/DeclarativeChart/PlotlySchema.js.map +1 -1
- package/lib-amd/components/DeclarativeChart/index.d.ts +0 -1
- package/lib-amd/components/DeclarativeChart/index.js.map +1 -1
- package/lib-amd/components/DonutChart/DonutChart.base.d.ts +3 -1
- package/lib-amd/components/DonutChart/DonutChart.base.js +7 -2
- package/lib-amd/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib-amd/components/GaugeChart/GaugeChart.base.d.ts +3 -1
- package/lib-amd/components/GaugeChart/GaugeChart.base.js +7 -2
- package/lib-amd/components/GaugeChart/GaugeChart.base.js.map +1 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +3 -1
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +7 -2
- package/lib-amd/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.d.ts +3 -1
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.js +7 -2
- package/lib-amd/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +3 -1
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +7 -2
- package/lib-amd/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
- package/lib-amd/components/Legends/Legends.base.d.ts +8 -2
- package/lib-amd/components/Legends/Legends.base.js +12 -2
- package/lib-amd/components/Legends/Legends.base.js.map +1 -1
- package/lib-amd/components/Legends/Legends.styles.d.ts +8 -0
- package/lib-amd/components/Legends/Legends.styles.js +22 -9
- package/lib-amd/components/Legends/Legends.styles.js.map +1 -1
- package/lib-amd/components/Legends/Legends.types.d.ts +15 -1
- package/lib-amd/components/Legends/Legends.types.js.map +1 -1
- package/lib-amd/components/LineChart/LineChart.base.d.ts +3 -1
- package/lib-amd/components/LineChart/LineChart.base.js +7 -2
- package/lib-amd/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-amd/components/SankeyChart/SankeyChart.base.d.ts +2 -1
- package/lib-amd/components/SankeyChart/SankeyChart.base.js +4 -1
- package/lib-amd/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.d.ts +3 -1
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js +7 -2
- package/lib-amd/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +3 -1
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +7 -2
- package/lib-amd/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-amd/index.d.ts +2 -2
- package/lib-amd/index.js.map +1 -1
- package/lib-amd/types/IDataPoint.d.ts +10 -0
- package/lib-amd/types/IDataPoint.js.map +1 -1
- package/lib-amd/utilities/image-export-utils.d.ts +13 -0
- package/lib-amd/{components/DeclarativeChart/imageExporter.js → utilities/image-export-utils.js} +69 -67
- package/lib-amd/utilities/image-export-utils.js.map +1 -0
- package/lib-amd/utilities/utilities.d.ts +2 -0
- package/lib-amd/utilities/utilities.js +47 -2
- package/lib-amd/utilities/utilities.js.map +1 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.d.ts +3 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.js +7 -1
- package/lib-commonjs/components/AreaChart/AreaChart.base.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.d.ts +1 -1
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js +36 -8
- package/lib-commonjs/components/DeclarativeChart/DeclarativeChart.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/PlotlySchema.d.ts +1 -0
- package/lib-commonjs/components/DeclarativeChart/PlotlySchema.js.map +1 -1
- package/lib-commonjs/components/DeclarativeChart/index.d.ts +0 -1
- package/lib-commonjs/components/DeclarativeChart/index.js.map +1 -1
- package/lib-commonjs/components/DonutChart/DonutChart.base.d.ts +3 -1
- package/lib-commonjs/components/DonutChart/DonutChart.base.js +7 -1
- package/lib-commonjs/components/DonutChart/DonutChart.base.js.map +1 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.base.d.ts +3 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.base.js +7 -1
- package/lib-commonjs/components/GaugeChart/GaugeChart.base.js.map +1 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.d.ts +3 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js +7 -1
- package/lib-commonjs/components/GroupedVerticalBarChart/GroupedVerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.d.ts +3 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js +7 -1
- package/lib-commonjs/components/HeatMapChart/HeatMapChart.base.js.map +1 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.d.ts +3 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js +7 -1
- package/lib-commonjs/components/HorizontalBarChartWithAxis/HorizontalBarChartWithAxis.base.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.base.d.ts +8 -2
- package/lib-commonjs/components/Legends/Legends.base.js +12 -1
- package/lib-commonjs/components/Legends/Legends.base.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.styles.d.ts +8 -0
- package/lib-commonjs/components/Legends/Legends.styles.js +22 -9
- package/lib-commonjs/components/Legends/Legends.styles.js.map +1 -1
- package/lib-commonjs/components/Legends/Legends.types.d.ts +15 -1
- package/lib-commonjs/components/Legends/Legends.types.js.map +1 -1
- package/lib-commonjs/components/LineChart/LineChart.base.d.ts +3 -1
- package/lib-commonjs/components/LineChart/LineChart.base.js +7 -1
- package/lib-commonjs/components/LineChart/LineChart.base.js.map +1 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.base.d.ts +2 -1
- package/lib-commonjs/components/SankeyChart/SankeyChart.base.js +4 -0
- package/lib-commonjs/components/SankeyChart/SankeyChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.d.ts +3 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js +7 -1
- package/lib-commonjs/components/VerticalBarChart/VerticalBarChart.base.js.map +1 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.d.ts +3 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js +7 -1
- package/lib-commonjs/components/VerticalStackedBarChart/VerticalStackedBarChart.base.js.map +1 -1
- package/lib-commonjs/index.d.ts +2 -2
- package/lib-commonjs/index.js.map +1 -1
- package/lib-commonjs/types/IDataPoint.d.ts +10 -0
- package/lib-commonjs/types/IDataPoint.js.map +1 -1
- package/lib-commonjs/utilities/image-export-utils.d.ts +13 -0
- package/lib-commonjs/{components/DeclarativeChart/imageExporter.js → utilities/image-export-utils.js} +70 -67
- package/lib-commonjs/utilities/image-export-utils.js.map +1 -0
- package/lib-commonjs/utilities/utilities.d.ts +2 -0
- package/lib-commonjs/utilities/utilities.js +47 -1
- package/lib-commonjs/utilities/utilities.js.map +1 -1
- package/package.json +4 -4
- package/src/components/Legends/Legends.types.ts +20 -1
- package/lib/components/DeclarativeChart/imageExporter.d.ts +0 -10
- package/lib/components/DeclarativeChart/imageExporter.js.map +0 -1
- package/lib-amd/components/DeclarativeChart/imageExporter.d.ts +0 -10
- package/lib-amd/components/DeclarativeChart/imageExporter.js.map +0 -1
- package/lib-commonjs/components/DeclarativeChart/imageExporter.d.ts +0 -10
- package/lib-commonjs/components/DeclarativeChart/imageExporter.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AreaChart.base.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, bisector } from 'd3-array';\nimport { pointer } from 'd3-selection';\nimport { select as d3Select } from 'd3-selection';\nimport { area as d3Area, stack as d3Stack, curveMonotoneX as d3CurveBasis, line as d3Line } from 'd3-shape';\nimport {\n classNamesFunction,\n find,\n getId,\n initializeComponentRef,\n memoizeFunction,\n} from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ICustomizedCalloutData,\n IAreaChartProps,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n IChildProps,\n IMargins,\n IAreaChartStyleProps,\n IAreaChartStyles,\n} from '../../index';\nimport { warnDeprecations } from '@fluentui/react/lib/Utilities';\nimport {\n calloutData,\n getXAxisType,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfNumericForAreaChart,\n domainRangeOfDateForAreaLineVerticalBarChart,\n createStringYAxis,\n formatDate,\n getSecureProps,\n areArraysEqual,\n} from '../../utilities/index';\nimport { ILegend, Legends } from '../Legends/index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IChart } from '../../types/index';\n\nconst getClassNames = classNamesFunction<IAreaChartStyleProps, IAreaChartStyles>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst COMPONENT_NAME = 'AREA CHART';\n\nenum InterceptVisibility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IAreaChartAreaPoint {\n xVal: string | number;\n values: IAreaChartDataSetPoint;\n}\nexport interface IAreaChartDataSetPoint {\n [key: string]: number | string | number[];\n}\nexport interface IDPointType {\n values: { 0: number; 1: number; data: {} };\n xVal: number | Date;\n}\nexport interface IMapXToDataSet {\n [key: string]: ILineChartDataPoint[];\n [key: number]: ILineChartDataPoint[];\n}\n\n//by default d3-shape 3.2.0 limits the< path> data point precision to 3 digits(d3/d3-path#10)\n\nexport interface IAreaChartState extends IBasestate {\n lineXValue: number;\n displayOfLine: InterceptVisibility;\n isCircleClicked: boolean;\n dataPointCalloutProps?: ICustomizedCalloutData;\n stackCalloutProps?: ICustomizedCalloutData;\n nearestCircleToHighlight: number | string | Date | null;\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n isShowCalloutPending: boolean;\n /** focused point */\n activePoint: string;\n selectedLegends: string[];\n}\n\nexport class AreaChartBase extends React.Component<IAreaChartProps, IAreaChartState> implements IChart {\n public static defaultProps: Partial<IAreaChartProps> = {\n useUTC: true,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any;\n private _createSet: (data: ILineChartPoints[]) => {\n colors: string[];\n opacity: number[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n calloutPoints: any;\n };\n private _colors: string[];\n private _opacity: number[];\n private _uniqueIdForGraph: string;\n private _verticalLineId: string;\n private _circleId: string;\n private _uniqueCallOutID: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _data: any;\n private _chart: JSX.Element[];\n private margins: IMargins;\n private _rectId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisRectScale: any;\n // determines if the given area chart has multiple stacked bar charts\n private _isMultiStackChart: boolean;\n private _tooltipId: string;\n private _highlightedCircleId: string;\n //enableComputationOptimization is used for optimized code to group data points by x value\n //from O(n^2) to O(n) using a map.\n private _enableComputationOptimization: boolean;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _cartesianChartRef: React.RefObject<IChart>;\n\n public constructor(props: IAreaChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this._createSet = memoizeFunction(this._createDataSet);\n this.state = {\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n hoverXValue: '',\n isCalloutVisible: false,\n refSelected: null,\n YValueHover: [],\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n nearestCircleToHighlight: null,\n isShowCalloutPending: false,\n activePoint: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n showYAxisGridLines: 'Dont use this property. Lines are drawn by default',\n });\n this._uniqueIdForGraph = getId('areaChart_');\n this._verticalLineId = getId('verticalLine_');\n this._circleId = getId('circle');\n this._rectId = getId('rectangle');\n this._tooltipId = getId('AreaChartTooltipID');\n this._enableComputationOptimization = true;\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_AreaChart_empty');\n this._cartesianChartRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IAreaChartProps): void {\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)) {\n this.setState({\n selectedLegends: this.props.legendProps?.selectedLegends || [],\n });\n }\n\n if (this.state.isShowCalloutPending) {\n this.setState({\n refSelected: `#${this._highlightedCircleId}`,\n isCalloutVisible: true,\n isShowCalloutPending: false,\n });\n }\n }\n\n public render(): JSX.Element {\n if (!this._isChartEmpty()) {\n const { lineChartData } = this.props.data;\n const points = this._addDefaultColors(lineChartData);\n const { colors, opacity, data, calloutPoints } = this._createSet(points);\n this._calloutPoints = calloutPoints;\n const isXAxisDateType = getXAxisType(points);\n this._colors = colors;\n this._opacity = opacity;\n this._data = data.renderData;\n const legends: JSX.Element = this._getLegendData(points);\n\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n const calloutProps = {\n target: this.state.refSelected,\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n gapSpace: 15,\n isBeakVisible: false,\n onDismiss: this._closeCallout,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.AreaChart}\n calloutProps={calloutProps}\n legendBars={legends}\n createYAxis={createNumericYAxis}\n isCalloutForStack\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n tickParams={tickParams}\n maxOfYVal={data.maxOfYVal}\n getGraphData={this._getGraphData}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={findNumericMinMaxOfY}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisRectScale = props.xScale;\n const ticks = this._xAxisRectScale.ticks();\n const width1 = this._xAxisRectScale(ticks[ticks.length - 1]);\n const rectHeight = props.containerHeight! - this.margins.top!;\n return (\n <>\n <g>\n <rect\n id={this._rectId}\n width={width1}\n height={rectHeight}\n fill={'transparent'}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n </g>\n <g>{this._chart}</g>\n </>\n );\n }}\n />\n );\n }\n return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n private _getDomainNRangeValues = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n return domainNRangeValue;\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _onRectMouseMove = (mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n // This will get the value of the X when mouse is on the chart\n const { selectedLegends } = this.state;\n const xOffset = this._xAxisRectScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![0].data, xOffset);\n const d0 = lineChartData![0].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![0].data[i] as ILineChartDataPoint;\n let pointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n const axisType =\n lineChartData![0].data.length > 0 ? (getTypeOfAxis(lineChartData![0].data[0].x, true) as XAxisTypes) : null;\n if (d0 === undefined && d1 !== undefined) {\n pointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n pointToHighlight = d0.x;\n index = i - 1;\n } else {\n let x0;\n let point0;\n let point1;\n switch (axisType) {\n case XAxisTypes.DateAxis:\n x0 = new Date(xOffset).getTime();\n point0 = (d0.x as Date).getTime();\n point1 = (d1.x as Date).getTime();\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![0].data[index as number];\n const formattedDate =\n pointToHighlight instanceof Date ? formatDate(pointToHighlight, this.props.useUTC) : pointToHighlight;\n const modifiedXVal = pointToHighlight instanceof Date ? pointToHighlight.getTime() : pointToHighlight;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const found: any = find(this._calloutPoints, (element: { x: string | number }) => {\n return element.x === modifiedXVal;\n });\n const nearestCircleToHighlight =\n axisType === XAxisTypes.DateAxis ? (pointToHighlight as Date).getTime() : pointToHighlight;\n const pointToHighlightUpdated = this.state.nearestCircleToHighlight !== nearestCircleToHighlight;\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated && !this.state.isShowCalloutPending) {\n const filteredValues =\n selectedLegends.length > 0\n ? found.values.filter((value: { legend: string }) => selectedLegends.includes(value.legend))\n : found.values;\n this.setState({\n nearestCircleToHighlight,\n isCalloutVisible: false,\n isShowCalloutPending: true,\n lineXValue: this._xAxisRectScale(pointToHighlight),\n displayOfLine: InterceptVisibility.show,\n isCircleClicked: false,\n stackCalloutProps: { ...found, values: filteredValues },\n YValueHover: filteredValues,\n dataPointCalloutProps: { ...found, values: filteredValues },\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n });\n } else {\n /*\n When above if condition is false but found=true, it means either\n\n 1). pointToHighlightUpdated is false.\n For this case we dont need to do anything.\n\n 2). isShowCalloutPending is true.\n For this case there will be no callout updation for the event.\n This condition has been added to prevent repeated callout flashing.\n Currently there is a fraction of second delay between hover event and subsequent callout refresh.\n In the meantime if another event is received, the callout continues to flash for the set of\n intermediate hover events.\n\n This does not cause any issue as the user interaction takes atleast a fraction of second and the final\n callout state is ultimately achieved.\n If a user performs very swift mouse maneuver, the intermediate events will be lost but the callout experience\n remains smooth.\n */\n }\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n });\n }\n };\n /**\n * just cleaning up the state which we have set in the mouse move event\n */\n private _onRectMouseOut = () => {\n /**/\n };\n\n private _handleChartMouseLeave = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n nearestCircleToHighlight: null,\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n hoverXValue: undefined,\n YValueHover: [],\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getDataPoints = (keys: string[], dataSet: any) => {\n const renderPoints: Array<IAreaChartDataSetPoint[]> = [];\n let maxOfYVal = 0;\n\n if (this.props.mode === 'tozeroy') {\n keys.forEach((key, index) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSet.forEach((d: any) => {\n currentLayer.push({\n values: [0, d[key]], // Start from zero for \"tozeroy\" mode\n xVal: d.xVal,\n });\n if (d[key] > maxOfYVal) {\n maxOfYVal = d[key];\n }\n });\n renderPoints.push(currentLayer);\n });\n } else {\n const dataValues = d3Stack().keys(keys)(dataSet);\n maxOfYVal = d3Max(dataValues[dataValues.length - 1], dp => dp[1])!;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataValues.forEach((layer: any) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n layer.forEach((d: any) => {\n currentLayer.push({\n values: d,\n xVal: d.data.xVal,\n });\n });\n renderPoints.push(currentLayer);\n });\n }\n\n this._isMultiStackChart = !!(this.props.legendProps?.selectedLegends\n ? renderPoints?.length >= 1\n : renderPoints?.length > 1);\n return {\n renderData: renderPoints,\n maxOfYVal,\n };\n };\n\n private _createDataSet = (points: ILineChartPoints[]) => {\n if (this.props.enablePerfOptimization && this._enableComputationOptimization) {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n const mapOfXvalToListOfDataPoints: IMapXToDataSet = {};\n allChartPoints.forEach((dataPoint: ILineChartDataPoint) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n // map of x value to the list of data points which share the same x value .\n if (mapOfXvalToListOfDataPoints[xValue]) {\n mapOfXvalToListOfDataPoints[xValue].push(dataPoint);\n } else {\n mapOfXvalToListOfDataPoints[xValue] = [dataPoint];\n }\n });\n\n Object.keys(mapOfXvalToListOfDataPoints).forEach((key: number | string) => {\n const value: ILineChartDataPoint[] = mapOfXvalToListOfDataPoints[key];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n value.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n });\n\n // get keys from dataset, used to render data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n const data = this._getDataPoints(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n } else {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n let tempArr = allChartPoints;\n while (tempArr.length) {\n const valToCheck = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n const filteredChartPoints: ILineChartDataPoint[] = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) === valToCheck,\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n filteredChartPoints.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n // removing compared objects from array\n const val = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n tempArr = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) !== val,\n );\n }\n\n // get keys from dataset, used to create stacked data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n const data = this._getDataPoints(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n }\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xAxis: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxis: any,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n this._chart = this._drawGraph(containerHeight, xAxis, yAxis, xElement!);\n };\n\n private _onLegendHover(legend: string): void {\n this.setState({\n activeLegend: legend,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n private _getLegendData = (points: ILineChartPoints[]): JSX.Element => {\n const data = points;\n const actions: ILegend[] = [];\n\n data.forEach((singleChartData: ILineChartPoints) => {\n const color: string = singleChartData.color!;\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === singleChartData.legend && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: singleChartData.legend,\n color,\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(singleChartData.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n {...this.props.legendProps}\n onChange={this._onLegendSelectionChange.bind(this)}\n />\n );\n };\n\n private _onLegendSelectionChange(\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (this.props.legendProps?.canSelectMultipleLegends) {\n this.setState({ selectedLegends });\n } else {\n this.setState({ selectedLegends: selectedLegends.slice(-1) });\n }\n if (this.props.legendProps?.onChange) {\n this.props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n }\n\n private _onDataPointClick = (func: (() => void) | undefined) => {\n if (func) {\n func();\n }\n this.setState({ isCircleClicked: true });\n };\n\n private _getOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 0.7;\n } else {\n const opacity = this._legendHighlighted(legend) || this._noLegendHighlighted() ? 0.7 : 0.1;\n return opacity;\n }\n };\n\n private _getLineOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 1;\n } else {\n let opacity = 0.3;\n if (this.state.isCalloutVisible) {\n opacity = 1;\n }\n if (!this._noLegendHighlighted()) {\n opacity = this._legendHighlighted(legend) ? 0 : 0.1;\n }\n return opacity;\n }\n };\n\n private _updateCircleFillColor = (xDataPoint: number | Date, lineColor: string, circleId: string): string => {\n let fillColor = lineColor;\n if (this.state.nearestCircleToHighlight === xDataPoint || this.state.activePoint === circleId) {\n this._highlightedCircleId = circleId;\n if (!this.state.isCircleClicked) {\n fillColor = this.props.theme!.semanticColors.bodyBackground;\n }\n }\n\n return fillColor;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _drawGraph = (containerHeight: number, xScale: any, yScale: any, xElement: SVGElement): JSX.Element[] => {\n const points = this._addDefaultColors(this.props.data.lineChartData);\n const { pointOptions, pointLineOptions } = this.props.data;\n const area = d3Area()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y0((d: any) => yScale(d.values[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y1((d: any) => yScale(d.values[1]))\n .curve(d3CurveBasis);\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d.values[1]))\n .curve(d3CurveBasis);\n\n const graph: JSX.Element[] = [];\n let lineColor: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n const layerOpacity = this.props.mode === 'tozeroy' ? 0.8 : this._opacity[index];\n graph.push(\n <React.Fragment key={`${index}-graph-${this._uniqueIdForGraph}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={`gradient_${index}`} x1=\"0%\" x2=\"0%\" y1=\"0%\" y2=\"100%\">\n <stop offset=\"0\" stopColor={this._colors[index]} />\n <stop offset=\"100%\" stopColor=\"transparent\" />\n </linearGradient>\n </defs>\n )}\n <path\n id={`${index}-line-${this._uniqueIdForGraph}`}\n d={line(singleStackedData)!}\n fill={'transparent'}\n strokeWidth={points[index].lineOptions?.strokeWidth ?? 3}\n stroke={this._colors[index]}\n opacity={this._getLineOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n strokeDasharray={points[index].lineOptions?.strokeDasharray}\n strokeDashoffset={points[index].lineOptions?.strokeDashoffset}\n strokeLinecap={points[index].lineOptions?.strokeLinecap}\n />\n {singleStackedData.length === 1 ? (\n <circle\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n cx={xScale(singleStackedData[0].xVal)}\n cy={yScale(singleStackedData[0].values[1])}\n r={6}\n stroke={this._colors[index]}\n strokeWidth={3}\n fill={this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n ) : (\n <path\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n fill={this.props.enableGradient ? `url(#gradient_${index})` : this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...(this.props.optimizeLargeData && {\n 'data-is-focusable': this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted(),\n role: 'img',\n 'aria-label': `${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`,\n })}\n />\n )}\n </React.Fragment>,\n );\n });\n\n const circleRadius = pointOptions && pointOptions.r ? Number(pointOptions.r) : 8;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n if (points.length === index) {\n return;\n }\n\n if (!this.props.optimizeLargeData || singleStackedData.length === 1) {\n // Render circles for all data points\n graph.push(\n <g\n key={`${index}-dots-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n clipPath=\"url(#clip)\"\n role=\"region\"\n aria-label={`${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`}\n >\n {singleStackedData.map((singlePoint: IDPointType, pointIndex: number) => {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n return (\n <circle\n key={circleId}\n id={circleId}\n data-is-focusable={this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted()}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n onClick={this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!)}\n onFocus={() => this._handleFocus(index, pointIndex, circleId)}\n onBlur={this._handleBlur}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n role=\"img\"\n aria-label={this._getAriaLabel(index, pointIndex)}\n />\n );\n })}\n </g>,\n );\n } else {\n // Render circles for data points close to the mouse pointer only\n singleStackedData.forEach((singlePoint: IDPointType, pointIndex: number) => {\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n if (this.state.nearestCircleToHighlight === xDataPoint) {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n graph.push(\n <circle\n key={circleId}\n id={circleId}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n onClick={this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!)}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n />,\n );\n }\n });\n }\n });\n graph.push(\n <line\n id={this._verticalLineId}\n key={this._verticalLineId}\n x1={this.state.lineXValue}\n y1={0}\n x2={this.state.lineXValue}\n y2={containerHeight}\n strokeWidth={1}\n strokeDasharray={5.5}\n stroke={lineColor!}\n opacity={0.5}\n visibility={this.state.displayOfLine}\n {...getSecureProps(pointLineOptions)}\n />,\n );\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return graph;\n };\n\n private _getCircleRadius = (xDataPoint: number, circleRadius: number, circleId: string, legend: string): number => {\n const { isCircleClicked, nearestCircleToHighlight, activePoint } = this.state;\n\n // Show the circle if no legends are selected or if the point's legend is in the selected legends\n if (!this._legendHighlighted(legend)) {\n return 0;\n }\n\n if (isCircleClicked && nearestCircleToHighlight === xDataPoint) {\n return 1;\n } else if (nearestCircleToHighlight === xDataPoint || activePoint === circleId) {\n return circleRadius;\n } else {\n return 0;\n }\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legend: string) => {\n return this._getHighlightedLegend().includes(legend!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this._getHighlightedLegend().length === 0;\n };\n\n private _getHighlightedLegend() {\n return this.state.selectedLegends.length > 0\n ? this.state.selectedLegends\n : this.state.activeLegend\n ? [this.state.activeLegend]\n : [];\n }\n\n private _addDefaultColors = (lineChartData?: ILineChartPoints[]): ILineChartPoints[] => {\n return lineChartData\n ? lineChartData.map((item, index) => {\n let color: string;\n // isInverted property is applicable to v8 themes only\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0, this.props.theme?.isInverted);\n } else {\n color = getColorFromToken(item.color, this.props.theme?.isInverted);\n }\n\n return { ...item, color };\n })\n : [];\n };\n\n private _handleFocus = (lineIndex: number, pointIndex: number, circleId: string) => {\n const { x, y, xAxisCalloutData } = this.props.data.lineChartData![lineIndex].data[pointIndex];\n const formattedDate = x instanceof Date ? formatDate(x, this.props.useUTC) : x;\n const modifiedXVal = x instanceof Date ? x.getTime() : x;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const found: any = this._calloutPoints.find((e: { x: string | number }) => e.x === modifiedXVal);\n // Show details in the callout for the focused point only\n found.values = found.values.filter((e: { y: number }) => e.y === y);\n const filteredValues = this._getFilteredLegendValues(found.values);\n\n this.setState({\n refSelected: `#${circleId}`,\n isCalloutVisible: true,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n YValueHover: filteredValues!,\n stackCalloutProps: { ...found, values: filteredValues },\n dataPointCalloutProps: { ...found, values: filteredValues },\n activePoint: circleId,\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getFilteredLegendValues = (values: any) => {\n !this._noLegendHighlighted()\n ? values.filter((value: { legend: string }) => this._legendHighlighted(value.legend))\n : values;\n };\n\n private _handleBlur = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n hoverXValue: undefined,\n YValueHover: [],\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n activePoint: '',\n });\n };\n\n private _getAriaLabel(lineIndex: number, pointIndex: number): string {\n const line = this.props.data.lineChartData![lineIndex];\n const point = line.data[pointIndex];\n const formattedDate = point.x instanceof Date ? formatDate(point.x, this.props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = line.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n private _isChartEmpty(): boolean {\n return !(\n (\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter(item => item.data.length === 0).length === 0\n )\n // if all the data sets have no data\n // filtering all items which have no data and checking if the length of the filtered array is 0\n // which means chart is not empty\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Area chart with ${lineChartData?.length || 0} data series. `;\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AreaChart.base.js","sourceRoot":"../src/","sources":["components/AreaChart/AreaChart.base.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport { max as d3Max, bisector } from 'd3-array';\nimport { pointer } from 'd3-selection';\nimport { select as d3Select } from 'd3-selection';\nimport { area as d3Area, stack as d3Stack, curveMonotoneX as d3CurveBasis, line as d3Line } from 'd3-shape';\nimport {\n classNamesFunction,\n find,\n getId,\n getRTL,\n initializeComponentRef,\n memoizeFunction,\n} from '@fluentui/react/lib/Utilities';\nimport {\n IAccessibilityProps,\n CartesianChart,\n ICustomizedCalloutData,\n IAreaChartProps,\n IBasestate,\n ILineChartDataPoint,\n ILineChartPoints,\n IChildProps,\n IMargins,\n IAreaChartStyleProps,\n IAreaChartStyles,\n} from '../../index';\nimport { warnDeprecations } from '@fluentui/react/lib/Utilities';\nimport {\n calloutData,\n getXAxisType,\n ChartTypes,\n XAxisTypes,\n getTypeOfAxis,\n tooltipOfXAxislabels,\n getNextColor,\n getColorFromToken,\n findNumericMinMaxOfY,\n createNumericYAxis,\n IDomainNRange,\n domainRangeOfNumericForAreaChart,\n domainRangeOfDateForAreaLineVerticalBarChart,\n createStringYAxis,\n formatDate,\n getSecureProps,\n areArraysEqual,\n} from '../../utilities/index';\nimport { ILegend, ILegendContainer, Legends } from '../Legends/index';\nimport { DirectionalHint } from '@fluentui/react/lib/Callout';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { toImage } from '../../utilities/image-export-utils';\n\nconst getClassNames = classNamesFunction<IAreaChartStyleProps, IAreaChartStyles>();\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst bisect = bisector((d: any) => d.x).left;\n\nconst COMPONENT_NAME = 'AREA CHART';\n\nenum InterceptVisibility {\n show = 'visibility',\n hide = 'hidden',\n}\n\nexport interface IAreaChartAreaPoint {\n xVal: string | number;\n values: IAreaChartDataSetPoint;\n}\nexport interface IAreaChartDataSetPoint {\n [key: string]: number | string | number[];\n}\nexport interface IDPointType {\n values: { 0: number; 1: number; data: {} };\n xVal: number | Date;\n}\nexport interface IMapXToDataSet {\n [key: string]: ILineChartDataPoint[];\n [key: number]: ILineChartDataPoint[];\n}\n\n//by default d3-shape 3.2.0 limits the< path> data point precision to 3 digits(d3/d3-path#10)\n\nexport interface IAreaChartState extends IBasestate {\n lineXValue: number;\n displayOfLine: InterceptVisibility;\n isCircleClicked: boolean;\n dataPointCalloutProps?: ICustomizedCalloutData;\n stackCalloutProps?: ICustomizedCalloutData;\n nearestCircleToHighlight: number | string | Date | null;\n xAxisCalloutAccessibilityData?: IAccessibilityProps;\n isShowCalloutPending: boolean;\n /** focused point */\n activePoint: string;\n selectedLegends: string[];\n}\n\nexport class AreaChartBase extends React.Component<IAreaChartProps, IAreaChartState> implements IChart {\n public static defaultProps: Partial<IAreaChartProps> = {\n useUTC: true,\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _calloutPoints: any;\n private _createSet: (data: ILineChartPoints[]) => {\n colors: string[];\n opacity: number[];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n data: any;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n calloutPoints: any;\n };\n private _colors: string[];\n private _opacity: number[];\n private _uniqueIdForGraph: string;\n private _verticalLineId: string;\n private _circleId: string;\n private _uniqueCallOutID: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _data: any;\n private _chart: JSX.Element[];\n private margins: IMargins;\n private _rectId: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _xAxisRectScale: any;\n // determines if the given area chart has multiple stacked bar charts\n private _isMultiStackChart: boolean;\n private _tooltipId: string;\n private _highlightedCircleId: string;\n //enableComputationOptimization is used for optimized code to group data points by x value\n //from O(n^2) to O(n) using a map.\n private _enableComputationOptimization: boolean;\n private _firstRenderOptimization: boolean;\n private _emptyChartId: string;\n private _cartesianChartRef: React.RefObject<IChart>;\n private _legendsRef: React.RefObject<ILegendContainer>;\n\n public constructor(props: IAreaChartProps) {\n super(props);\n\n initializeComponentRef(this);\n\n this._createSet = memoizeFunction(this._createDataSet);\n this.state = {\n selectedLegends: props.legendProps?.selectedLegends || [],\n activeLegend: undefined,\n hoverXValue: '',\n isCalloutVisible: false,\n refSelected: null,\n YValueHover: [],\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n nearestCircleToHighlight: null,\n isShowCalloutPending: false,\n activePoint: '',\n };\n warnDeprecations(COMPONENT_NAME, props, {\n showYAxisGridLines: 'Dont use this property. Lines are drawn by default',\n });\n this._uniqueIdForGraph = getId('areaChart_');\n this._verticalLineId = getId('verticalLine_');\n this._circleId = getId('circle');\n this._rectId = getId('rectangle');\n this._tooltipId = getId('AreaChartTooltipID');\n this._enableComputationOptimization = true;\n this._firstRenderOptimization = true;\n this._emptyChartId = getId('_AreaChart_empty');\n this._cartesianChartRef = React.createRef();\n this._legendsRef = React.createRef();\n }\n\n public componentDidUpdate(prevProps: IAreaChartProps): void {\n if (!areArraysEqual(prevProps.legendProps?.selectedLegends, this.props.legendProps?.selectedLegends)) {\n this.setState({\n selectedLegends: this.props.legendProps?.selectedLegends || [],\n });\n }\n\n if (this.state.isShowCalloutPending) {\n this.setState({\n refSelected: `#${this._highlightedCircleId}`,\n isCalloutVisible: true,\n isShowCalloutPending: false,\n });\n }\n }\n\n public render(): JSX.Element {\n if (!this._isChartEmpty()) {\n const { lineChartData } = this.props.data;\n const points = this._addDefaultColors(lineChartData);\n const { colors, opacity, data, calloutPoints } = this._createSet(points);\n this._calloutPoints = calloutPoints;\n const isXAxisDateType = getXAxisType(points);\n this._colors = colors;\n this._opacity = opacity;\n this._data = data.renderData;\n const legends: JSX.Element = this._getLegendData(points);\n\n const tickParams = {\n tickValues: this.props.tickValues,\n tickFormat: this.props.tickFormat,\n };\n\n const calloutProps = {\n target: this.state.refSelected,\n isCalloutVisible: this.state.isCalloutVisible,\n directionalHint: DirectionalHint.topAutoEdge,\n YValueHover: this.state.YValueHover,\n hoverXValue: this.state.hoverXValue,\n id: `toolTip${this._uniqueCallOutID}`,\n gapSpace: 15,\n isBeakVisible: false,\n onDismiss: this._closeCallout,\n 'data-is-focusable': true,\n xAxisCalloutAccessibilityData: this.state.xAxisCalloutAccessibilityData,\n ...this.props.calloutProps,\n };\n return (\n <CartesianChart\n {...this.props}\n chartTitle={this._getChartTitle()}\n points={points}\n chartType={ChartTypes.AreaChart}\n calloutProps={calloutProps}\n legendBars={legends}\n createYAxis={createNumericYAxis}\n isCalloutForStack\n xAxisType={isXAxisDateType ? XAxisTypes.DateAxis : XAxisTypes.NumericAxis}\n tickParams={tickParams}\n maxOfYVal={data.maxOfYVal}\n getGraphData={this._getGraphData}\n getDomainNRangeValues={this._getDomainNRangeValues}\n createStringYAxis={createStringYAxis}\n getmargins={this._getMargins}\n getMinMaxOfYAxis={findNumericMinMaxOfY}\n customizedCallout={this._getCustomizedCallout()}\n onChartMouseLeave={this._handleChartMouseLeave}\n enableFirstRenderOptimization={this.props.enablePerfOptimization && this._firstRenderOptimization}\n ref={this._cartesianChartRef}\n /* eslint-disable react/jsx-no-bind */\n // eslint-disable-next-line react/no-children-prop\n children={(props: IChildProps) => {\n this._xAxisRectScale = props.xScale;\n const ticks = this._xAxisRectScale.ticks();\n const width1 = this._xAxisRectScale(ticks[ticks.length - 1]);\n const rectHeight = props.containerHeight! - this.margins.top!;\n return (\n <>\n <g>\n <rect\n id={this._rectId}\n width={width1}\n height={rectHeight}\n fill={'transparent'}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n </g>\n <g>{this._chart}</g>\n </>\n );\n }}\n />\n );\n }\n return (\n <div\n id={this._emptyChartId}\n role={'alert'}\n style={{ opacity: '0' }}\n aria-label={'Graph has no data to display'}\n />\n );\n }\n\n public get chartContainer(): HTMLElement | null {\n return this._cartesianChartRef.current?.chartContainer || null;\n }\n\n public toImage = (opts?: IImageExportOptions): Promise<string> => {\n return toImage(this._cartesianChartRef.current?.chartContainer, this._legendsRef.current?.toSVG, getRTL(), opts);\n };\n\n private _getDomainNRangeValues = (\n points: ILineChartPoints[],\n margins: IMargins,\n width: number,\n chartType: ChartTypes,\n isRTL: boolean,\n xAxisType: XAxisTypes,\n barWidth: number,\n tickValues: Date[] | number[] | undefined,\n ) => {\n let domainNRangeValue: IDomainNRange;\n if (xAxisType === XAxisTypes.NumericAxis) {\n domainNRangeValue = domainRangeOfNumericForAreaChart(points, margins, width, isRTL);\n } else if (xAxisType === XAxisTypes.DateAxis) {\n domainNRangeValue = domainRangeOfDateForAreaLineVerticalBarChart(\n points,\n margins,\n width,\n isRTL,\n tickValues! as Date[],\n chartType,\n barWidth,\n );\n } else {\n domainNRangeValue = { dStartValue: 0, dEndValue: 0, rStartValue: 0, rEndValue: 0 };\n }\n return domainNRangeValue;\n };\n\n private _getMargins = (margins: IMargins) => {\n this.margins = margins;\n };\n\n private _onRectMouseMove = (mouseEvent: React.MouseEvent<SVGRectElement | SVGPathElement | SVGCircleElement>) => {\n mouseEvent.persist();\n const { data } = this.props;\n const { lineChartData } = data;\n // This will get the value of the X when mouse is on the chart\n const { selectedLegends } = this.state;\n const xOffset = this._xAxisRectScale.invert(pointer(mouseEvent)[0], document.getElementById(this._rectId)!);\n const i = bisect(lineChartData![0].data, xOffset);\n const d0 = lineChartData![0].data[i - 1] as ILineChartDataPoint;\n const d1 = lineChartData![0].data[i] as ILineChartDataPoint;\n let pointToHighlight: string | Date | number | null = null;\n let index: null | number = null;\n const axisType =\n lineChartData![0].data.length > 0 ? (getTypeOfAxis(lineChartData![0].data[0].x, true) as XAxisTypes) : null;\n if (d0 === undefined && d1 !== undefined) {\n pointToHighlight = d1.x;\n index = i;\n } else if (d0 !== undefined && d1 === undefined) {\n pointToHighlight = d0.x;\n index = i - 1;\n } else {\n let x0;\n let point0;\n let point1;\n switch (axisType) {\n case XAxisTypes.DateAxis:\n x0 = new Date(xOffset).getTime();\n point0 = (d0.x as Date).getTime();\n point1 = (d1.x as Date).getTime();\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n case XAxisTypes.NumericAxis:\n x0 = xOffset as number;\n point0 = d0.x as number;\n point1 = d1.x as number;\n pointToHighlight = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? d1.x : d0.x;\n index = Math.abs(x0 - point0) > Math.abs(x0 - point1) ? i : i - 1;\n break;\n default:\n break;\n }\n }\n\n const { xAxisCalloutData, xAxisCalloutAccessibilityData } = lineChartData![0].data[index as number];\n const formattedDate =\n pointToHighlight instanceof Date ? formatDate(pointToHighlight, this.props.useUTC) : pointToHighlight;\n const modifiedXVal = pointToHighlight instanceof Date ? pointToHighlight.getTime() : pointToHighlight;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const found: any = find(this._calloutPoints, (element: { x: string | number }) => {\n return element.x === modifiedXVal;\n });\n const nearestCircleToHighlight =\n axisType === XAxisTypes.DateAxis ? (pointToHighlight as Date).getTime() : pointToHighlight;\n const pointToHighlightUpdated = this.state.nearestCircleToHighlight !== nearestCircleToHighlight;\n // if no points need to be called out then don't show vertical line and callout card\n if (found && pointToHighlightUpdated && !this.state.isShowCalloutPending) {\n const filteredValues =\n selectedLegends.length > 0\n ? found.values.filter((value: { legend: string }) => selectedLegends.includes(value.legend))\n : found.values;\n this.setState({\n nearestCircleToHighlight,\n isCalloutVisible: false,\n isShowCalloutPending: true,\n lineXValue: this._xAxisRectScale(pointToHighlight),\n displayOfLine: InterceptVisibility.show,\n isCircleClicked: false,\n stackCalloutProps: { ...found, values: filteredValues },\n YValueHover: filteredValues,\n dataPointCalloutProps: { ...found, values: filteredValues },\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n xAxisCalloutAccessibilityData,\n activePoint: '',\n });\n } else {\n /*\n When above if condition is false but found=true, it means either\n\n 1). pointToHighlightUpdated is false.\n For this case we dont need to do anything.\n\n 2). isShowCalloutPending is true.\n For this case there will be no callout updation for the event.\n This condition has been added to prevent repeated callout flashing.\n Currently there is a fraction of second delay between hover event and subsequent callout refresh.\n In the meantime if another event is received, the callout continues to flash for the set of\n intermediate hover events.\n\n This does not cause any issue as the user interaction takes atleast a fraction of second and the final\n callout state is ultimately achieved.\n If a user performs very swift mouse maneuver, the intermediate events will be lost but the callout experience\n remains smooth.\n */\n }\n if (!found) {\n this.setState({\n isCalloutVisible: false,\n nearestCircleToHighlight,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n });\n }\n };\n /**\n * just cleaning up the state which we have set in the mouse move event\n */\n private _onRectMouseOut = () => {\n /**/\n };\n\n private _handleChartMouseLeave = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n nearestCircleToHighlight: null,\n lineXValue: 0,\n displayOfLine: InterceptVisibility.hide,\n isCircleClicked: false,\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n hoverXValue: undefined,\n YValueHover: [],\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getDataPoints = (keys: string[], dataSet: any) => {\n const renderPoints: Array<IAreaChartDataSetPoint[]> = [];\n let maxOfYVal = 0;\n\n if (this.props.mode === 'tozeroy') {\n keys.forEach((key, index) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataSet.forEach((d: any) => {\n currentLayer.push({\n values: [0, d[key]], // Start from zero for \"tozeroy\" mode\n xVal: d.xVal,\n });\n if (d[key] > maxOfYVal) {\n maxOfYVal = d[key];\n }\n });\n renderPoints.push(currentLayer);\n });\n } else {\n const dataValues = d3Stack().keys(keys)(dataSet);\n maxOfYVal = d3Max(dataValues[dataValues.length - 1], dp => dp[1])!;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n dataValues.forEach((layer: any) => {\n const currentLayer: IAreaChartDataSetPoint[] = [];\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n layer.forEach((d: any) => {\n currentLayer.push({\n values: d,\n xVal: d.data.xVal,\n });\n });\n renderPoints.push(currentLayer);\n });\n }\n\n this._isMultiStackChart = !!(this.props.legendProps?.selectedLegends\n ? renderPoints?.length >= 1\n : renderPoints?.length > 1);\n return {\n renderData: renderPoints,\n maxOfYVal,\n };\n };\n\n private _createDataSet = (points: ILineChartPoints[]) => {\n if (this.props.enablePerfOptimization && this._enableComputationOptimization) {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n const mapOfXvalToListOfDataPoints: IMapXToDataSet = {};\n allChartPoints.forEach((dataPoint: ILineChartDataPoint) => {\n const xValue = dataPoint.x instanceof Date ? dataPoint.x.toLocaleString() : dataPoint.x;\n // map of x value to the list of data points which share the same x value .\n if (mapOfXvalToListOfDataPoints[xValue]) {\n mapOfXvalToListOfDataPoints[xValue].push(dataPoint);\n } else {\n mapOfXvalToListOfDataPoints[xValue] = [dataPoint];\n }\n });\n\n Object.keys(mapOfXvalToListOfDataPoints).forEach((key: number | string) => {\n const value: ILineChartDataPoint[] = mapOfXvalToListOfDataPoints[key];\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n value.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n });\n\n // get keys from dataset, used to render data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n const data = this._getDataPoints(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n } else {\n const allChartPoints: ILineChartDataPoint[] = [];\n const dataSet: IAreaChartDataSetPoint[] = [];\n const colors: string[] = [];\n const opacity: number[] = [];\n const calloutPoints = calloutData(points!);\n\n points &&\n points.length &&\n points.forEach((singleChartPoint: ILineChartPoints) => {\n colors.push(singleChartPoint.color!);\n opacity.push(singleChartPoint.opacity || 1);\n allChartPoints.push(...singleChartPoint.data);\n });\n\n let tempArr = allChartPoints;\n while (tempArr.length) {\n const valToCheck = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n const filteredChartPoints: ILineChartDataPoint[] = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) === valToCheck,\n );\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const singleDataset: any = {};\n filteredChartPoints.forEach((singleDataPoint: ILineChartDataPoint, index: number) => {\n singleDataset.xVal = singleDataPoint.x;\n singleDataset[`chart${index}`] = singleDataPoint.y;\n });\n dataSet.push(singleDataset);\n // removing compared objects from array\n const val = tempArr[0].x instanceof Date ? tempArr[0].x.toLocaleString() : tempArr[0].x;\n tempArr = tempArr.filter(\n (point: ILineChartDataPoint) => (point.x instanceof Date ? point.x.toLocaleString() : point.x) !== val,\n );\n }\n\n // get keys from dataset, used to create stacked data\n const keysLength: number = dataSet && Object.keys(dataSet[0])!.length;\n const keys: string[] = [];\n for (let i = 0; i < keysLength - 1; i++) {\n const keyVal = `chart${i}`;\n keys.push(keyVal);\n }\n\n // Data used to draw graph\n const data = this._getDataPoints(keys, dataSet);\n\n return {\n colors,\n opacity,\n keys,\n data,\n calloutPoints,\n };\n }\n };\n\n private _getCustomizedCallout = () => {\n return this.props.onRenderCalloutPerStack\n ? this.props.onRenderCalloutPerStack(this.state.stackCalloutProps)\n : this.props.onRenderCalloutPerDataPoint\n ? this.props.onRenderCalloutPerDataPoint(this.state.dataPointCalloutProps)\n : null;\n };\n\n private _getGraphData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n xAxis: any,\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n yAxis: any,\n containerHeight: number,\n containerWidth: number,\n xElement: SVGElement | null,\n ) => {\n this._chart = this._drawGraph(containerHeight, xAxis, yAxis, xElement!);\n };\n\n private _onLegendHover(legend: string): void {\n this.setState({\n activeLegend: legend,\n });\n }\n\n private _onLegendLeave(): void {\n this.setState({\n activeLegend: undefined,\n });\n }\n\n private _getLegendData = (points: ILineChartPoints[]): JSX.Element => {\n const data = points;\n const actions: ILegend[] = [];\n\n data.forEach((singleChartData: ILineChartPoints) => {\n const color: string = singleChartData.color!;\n const checkSimilarLegends = actions.filter(\n (leg: ILegend) => leg.title === singleChartData.legend && leg.color === color,\n );\n if (checkSimilarLegends!.length > 0) {\n return;\n }\n\n const legend: ILegend = {\n title: singleChartData.legend,\n color,\n hoverAction: () => {\n this._handleChartMouseLeave();\n this._onLegendHover(singleChartData.legend);\n },\n onMouseOutAction: () => {\n this._onLegendLeave();\n },\n };\n\n actions.push(legend);\n });\n return (\n <Legends\n legends={actions}\n overflowProps={this.props.legendsOverflowProps}\n enabledWrapLines={this.props.enabledLegendsWrapLines}\n focusZonePropsInHoverCard={this.props.focusZonePropsForLegendsInHoverCard}\n {...this.props.legendProps}\n onChange={this._onLegendSelectionChange.bind(this)}\n ref={this._legendsRef}\n />\n );\n };\n\n private _onLegendSelectionChange(\n selectedLegends: string[],\n event: React.MouseEvent<HTMLButtonElement>,\n currentLegend?: ILegend,\n ): void {\n if (this.props.legendProps?.canSelectMultipleLegends) {\n this.setState({ selectedLegends });\n } else {\n this.setState({ selectedLegends: selectedLegends.slice(-1) });\n }\n if (this.props.legendProps?.onChange) {\n this.props.legendProps.onChange(selectedLegends, event, currentLegend);\n }\n }\n\n private _onDataPointClick = (func: (() => void) | undefined) => {\n if (func) {\n func();\n }\n this.setState({ isCircleClicked: true });\n };\n\n private _getOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 0.7;\n } else {\n const opacity = this._legendHighlighted(legend) || this._noLegendHighlighted() ? 0.7 : 0.1;\n return opacity;\n }\n };\n\n private _getLineOpacity = (legend: string): number => {\n if (!this._isMultiStackChart) {\n return 1;\n } else {\n let opacity = 0.3;\n if (this.state.isCalloutVisible) {\n opacity = 1;\n }\n if (!this._noLegendHighlighted()) {\n opacity = this._legendHighlighted(legend) ? 0 : 0.1;\n }\n return opacity;\n }\n };\n\n private _updateCircleFillColor = (xDataPoint: number | Date, lineColor: string, circleId: string): string => {\n let fillColor = lineColor;\n if (this.state.nearestCircleToHighlight === xDataPoint || this.state.activePoint === circleId) {\n this._highlightedCircleId = circleId;\n if (!this.state.isCircleClicked) {\n fillColor = this.props.theme!.semanticColors.bodyBackground;\n }\n }\n\n return fillColor;\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _drawGraph = (containerHeight: number, xScale: any, yScale: any, xElement: SVGElement): JSX.Element[] => {\n const points = this._addDefaultColors(this.props.data.lineChartData);\n const { pointOptions, pointLineOptions } = this.props.data;\n const area = d3Area()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y0((d: any) => yScale(d.values[0]))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y1((d: any) => yScale(d.values[1]))\n .curve(d3CurveBasis);\n const line = d3Line()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .x((d: any) => xScale(d.xVal))\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .y((d: any) => yScale(d.values[1]))\n .curve(d3CurveBasis);\n\n const graph: JSX.Element[] = [];\n let lineColor: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n const layerOpacity = this.props.mode === 'tozeroy' ? 0.8 : this._opacity[index];\n graph.push(\n <React.Fragment key={`${index}-graph-${this._uniqueIdForGraph}`}>\n {this.props.enableGradient && (\n <defs>\n <linearGradient id={`gradient_${index}`} x1=\"0%\" x2=\"0%\" y1=\"0%\" y2=\"100%\">\n <stop offset=\"0\" stopColor={this._colors[index]} />\n <stop offset=\"100%\" stopColor=\"transparent\" />\n </linearGradient>\n </defs>\n )}\n <path\n id={`${index}-line-${this._uniqueIdForGraph}`}\n d={line(singleStackedData)!}\n fill={'transparent'}\n strokeWidth={points[index].lineOptions?.strokeWidth ?? 3}\n stroke={this._colors[index]}\n opacity={this._getLineOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n strokeDasharray={points[index].lineOptions?.strokeDasharray}\n strokeDashoffset={points[index].lineOptions?.strokeDashoffset}\n strokeLinecap={points[index].lineOptions?.strokeLinecap}\n />\n {singleStackedData.length === 1 ? (\n <circle\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n cx={xScale(singleStackedData[0].xVal)}\n cy={yScale(singleStackedData[0].values[1])}\n r={6}\n stroke={this._colors[index]}\n strokeWidth={3}\n fill={this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n />\n ) : (\n <path\n id={`${index}-graph-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n fill={this.props.enableGradient ? `url(#gradient_${index})` : this._colors[index]}\n opacity={layerOpacity}\n fillOpacity={this._getOpacity(points[index]!.legend)}\n onMouseMove={this._onRectMouseMove}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n {...(this.props.optimizeLargeData && {\n 'data-is-focusable': this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted(),\n role: 'img',\n 'aria-label': `${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`,\n })}\n />\n )}\n </React.Fragment>,\n );\n });\n\n const circleRadius = pointOptions && pointOptions.r ? Number(pointOptions.r) : 8;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this._data.forEach((singleStackedData: Array<any>, index: number) => {\n if (points.length === index) {\n return;\n }\n\n if (!this.props.optimizeLargeData || singleStackedData.length === 1) {\n // Render circles for all data points\n graph.push(\n <g\n key={`${index}-dots-${this._uniqueIdForGraph}`}\n d={area(singleStackedData)!}\n clipPath=\"url(#clip)\"\n role=\"region\"\n aria-label={`${points[index].legend}, series ${index + 1} of ${points.length} with ${\n points[index].data.length\n } data points.`}\n >\n {singleStackedData.map((singlePoint: IDPointType, pointIndex: number) => {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n return (\n <circle\n key={circleId}\n id={circleId}\n data-is-focusable={this._legendHighlighted(points[index]!.legend) || this._noLegendHighlighted()}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n onClick={this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!)}\n onFocus={() => this._handleFocus(index, pointIndex, circleId)}\n onBlur={this._handleBlur}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n role=\"img\"\n aria-label={this._getAriaLabel(index, pointIndex)}\n />\n );\n })}\n </g>,\n );\n } else {\n // Render circles for data points close to the mouse pointer only\n singleStackedData.forEach((singlePoint: IDPointType, pointIndex: number) => {\n const xDataPoint = singlePoint.xVal instanceof Date ? singlePoint.xVal.getTime() : singlePoint.xVal;\n if (this.state.nearestCircleToHighlight === xDataPoint) {\n const circleId = `${this._circleId}_${index * this._data[0].length + pointIndex}`;\n lineColor = points[index]!.color!;\n const legend = points[index]!.legend;\n graph.push(\n <circle\n key={circleId}\n id={circleId}\n cx={xScale(singlePoint.xVal)}\n cy={yScale(singlePoint.values[1])}\n stroke={lineColor}\n strokeWidth={3}\n fill={this._updateCircleFillColor(xDataPoint, lineColor, circleId)}\n onMouseOut={this._onRectMouseOut}\n onMouseOver={this._onRectMouseMove}\n onClick={this._onDataPointClick.bind(this, points[index]!.data[pointIndex].onDataPointClick!)}\n {...getSecureProps(pointOptions)}\n r={this._getCircleRadius(xDataPoint, circleRadius, circleId, legend)}\n />,\n );\n }\n });\n }\n });\n graph.push(\n <line\n id={this._verticalLineId}\n key={this._verticalLineId}\n x1={this.state.lineXValue}\n y1={0}\n x2={this.state.lineXValue}\n y2={containerHeight}\n strokeWidth={1}\n strokeDasharray={5.5}\n stroke={lineColor!}\n opacity={0.5}\n visibility={this.state.displayOfLine}\n {...getSecureProps(pointLineOptions)}\n />,\n );\n const classNames = getClassNames(this.props.styles!, {\n theme: this.props.theme!,\n });\n // Removing un wanted tooltip div from DOM, when prop not provided.\n if (!this.props.showXAxisLablesTooltip) {\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n // Used to display tooltip at x axis labels.\n if (!this.props.wrapXAxisLables && this.props.showXAxisLablesTooltip) {\n const xAxisElement = d3Select(xElement).call(xScale);\n try {\n document.getElementById(this._tooltipId) && document.getElementById(this._tooltipId)!.remove();\n // eslint-disable-next-line no-empty\n } catch (e) {}\n const tooltipProps = {\n tooltipCls: classNames.tooltip!,\n id: this._tooltipId,\n xAxis: xAxisElement,\n };\n xAxisElement && tooltipOfXAxislabels(tooltipProps);\n }\n return graph;\n };\n\n private _getCircleRadius = (xDataPoint: number, circleRadius: number, circleId: string, legend: string): number => {\n const { isCircleClicked, nearestCircleToHighlight, activePoint } = this.state;\n\n // Show the circle if no legends are selected or if the point's legend is in the selected legends\n if (!this._legendHighlighted(legend)) {\n return 0;\n }\n\n if (isCircleClicked && nearestCircleToHighlight === xDataPoint) {\n return 1;\n } else if (nearestCircleToHighlight === xDataPoint || activePoint === circleId) {\n return circleRadius;\n } else {\n return 0;\n }\n };\n\n private _closeCallout = () => {\n this.setState({\n isCalloutVisible: false,\n });\n };\n\n /**\n * This function checks if the given legend is highlighted or not.\n * A legend can be highlighted in 2 ways:\n * 1. selection: if the user clicks on it\n * 2. hovering: if there is no selected legend and the user hovers over it\n */\n private _legendHighlighted = (legend: string) => {\n return this._getHighlightedLegend().includes(legend!);\n };\n\n /**\n * This function checks if none of the legends is selected or hovered.\n */\n private _noLegendHighlighted = () => {\n return this._getHighlightedLegend().length === 0;\n };\n\n private _getHighlightedLegend() {\n return this.state.selectedLegends.length > 0\n ? this.state.selectedLegends\n : this.state.activeLegend\n ? [this.state.activeLegend]\n : [];\n }\n\n private _addDefaultColors = (lineChartData?: ILineChartPoints[]): ILineChartPoints[] => {\n return lineChartData\n ? lineChartData.map((item, index) => {\n let color: string;\n // isInverted property is applicable to v8 themes only\n if (typeof item.color === 'undefined') {\n color = getNextColor(index, 0, this.props.theme?.isInverted);\n } else {\n color = getColorFromToken(item.color, this.props.theme?.isInverted);\n }\n\n return { ...item, color };\n })\n : [];\n };\n\n private _handleFocus = (lineIndex: number, pointIndex: number, circleId: string) => {\n const { x, y, xAxisCalloutData } = this.props.data.lineChartData![lineIndex].data[pointIndex];\n const formattedDate = x instanceof Date ? formatDate(x, this.props.useUTC) : x;\n const modifiedXVal = x instanceof Date ? x.getTime() : x;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const found: any = this._calloutPoints.find((e: { x: string | number }) => e.x === modifiedXVal);\n // Show details in the callout for the focused point only\n found.values = found.values.filter((e: { y: number }) => e.y === y);\n const filteredValues = this._getFilteredLegendValues(found.values);\n\n this.setState({\n refSelected: `#${circleId}`,\n isCalloutVisible: true,\n hoverXValue: xAxisCalloutData ? xAxisCalloutData : formattedDate,\n YValueHover: filteredValues!,\n stackCalloutProps: { ...found, values: filteredValues },\n dataPointCalloutProps: { ...found, values: filteredValues },\n activePoint: circleId,\n });\n };\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private _getFilteredLegendValues = (values: any) => {\n !this._noLegendHighlighted()\n ? values.filter((value: { legend: string }) => this._legendHighlighted(value.legend))\n : values;\n };\n\n private _handleBlur = () => {\n this.setState({\n refSelected: null,\n isCalloutVisible: false,\n hoverXValue: undefined,\n YValueHover: [],\n stackCalloutProps: undefined,\n dataPointCalloutProps: undefined,\n activePoint: '',\n });\n };\n\n private _getAriaLabel(lineIndex: number, pointIndex: number): string {\n const line = this.props.data.lineChartData![lineIndex];\n const point = line.data[pointIndex];\n const formattedDate = point.x instanceof Date ? formatDate(point.x, this.props.useUTC) : point.x;\n const xValue = point.xAxisCalloutData || formattedDate;\n const legend = line.legend;\n const yValue = point.yAxisCalloutData || point.y;\n return point.callOutAccessibilityData?.ariaLabel || `${xValue}. ${legend}, ${yValue}.`;\n }\n\n private _isChartEmpty(): boolean {\n return !(\n (\n this.props.data &&\n this.props.data.lineChartData &&\n this.props.data.lineChartData.length > 0 &&\n this.props.data.lineChartData.filter(item => item.data.length === 0).length === 0\n )\n // if all the data sets have no data\n // filtering all items which have no data and checking if the length of the filtered array is 0\n // which means chart is not empty\n );\n }\n\n private _getChartTitle = (): string => {\n const { chartTitle, lineChartData } = this.props.data;\n return (chartTitle ? `${chartTitle}. ` : '') + `Area chart with ${lineChartData?.length || 0} data series. `;\n };\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { IRefObject } from '@fluentui/react/lib/Utilities';
|
|
3
|
-
import { IImageExportOptions } from '
|
|
3
|
+
import { IImageExportOptions } from '../../types/index';
|
|
4
4
|
/**
|
|
5
5
|
* DeclarativeChart schema.
|
|
6
6
|
* {@docCategory DeclarativeChart}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
define(["require", "exports", "tslib", "react", "@fluentui/react", "../DonutChart/index", "../VerticalStackedBarChart/index", "./PlotlySchemaAdapter", "../LineChart/index", "../HorizontalBarChartWithAxis/index", "../AreaChart/index", "../HeatMapChart/index", "../SankeyChart/SankeyChart", "../GaugeChart/index", "../GroupedVerticalBarChart/index", "../VerticalBarChart/index", "
|
|
1
|
+
define(["require", "exports", "tslib", "react", "@fluentui/react", "../DonutChart/index", "../VerticalStackedBarChart/index", "./PlotlySchemaAdapter", "../LineChart/index", "../HorizontalBarChartWithAxis/index", "../AreaChart/index", "../HeatMapChart/index", "../SankeyChart/SankeyChart", "../GaugeChart/index", "../GroupedVerticalBarChart/index", "../VerticalBarChart/index", "../ResponsiveContainer/withResponsiveContainer"], function (require, exports, tslib_1, React, react_1, index_1, index_2, PlotlySchemaAdapter_1, index_3, index_4, index_5, index_6, SankeyChart_1, index_7, index_8, index_9, withResponsiveContainer_1) {
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.DeclarativeChart = void 0;
|
|
@@ -21,9 +21,25 @@ define(["require", "exports", "tslib", "react", "@fluentui/react", "../DonutChar
|
|
|
21
21
|
* {@docCategory DeclarativeChart}
|
|
22
22
|
*/
|
|
23
23
|
exports.DeclarativeChart = React.forwardRef(function (props, forwardedRef) {
|
|
24
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
|
|
24
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
25
25
|
var plotlySchema = (0, PlotlySchemaAdapter_1.sanitizeJson)(props.chartSchema).plotlySchema;
|
|
26
|
-
var plotlyInput =
|
|
26
|
+
var plotlyInput = (function () {
|
|
27
|
+
try {
|
|
28
|
+
return plotlySchema;
|
|
29
|
+
}
|
|
30
|
+
catch (error) {
|
|
31
|
+
throw new Error("Invalid plotly schema: ".concat(error));
|
|
32
|
+
}
|
|
33
|
+
})();
|
|
34
|
+
if (!plotlyInput) {
|
|
35
|
+
throw new Error('Plotly input is null or undefined');
|
|
36
|
+
}
|
|
37
|
+
if (!plotlyInput.data) {
|
|
38
|
+
throw new Error('Plotly input data is null or undefined');
|
|
39
|
+
}
|
|
40
|
+
if (plotlyInput.data.length === 0) {
|
|
41
|
+
throw new Error('Plotly input data is empty');
|
|
42
|
+
}
|
|
27
43
|
var selectedLegends = plotlySchema.selectedLegends;
|
|
28
44
|
var colorMap = useColorMapping();
|
|
29
45
|
var theme = (0, react_1.useTheme)();
|
|
@@ -32,7 +48,7 @@ define(["require", "exports", "tslib", "react", "@fluentui/react", "../DonutChar
|
|
|
32
48
|
if (!(0, PlotlySchemaAdapter_1.isArrayOrTypedArray)(selectedLegends)) {
|
|
33
49
|
selectedLegends = [];
|
|
34
50
|
}
|
|
35
|
-
var
|
|
51
|
+
var _t = React.useState(selectedLegends), activeLegends = _t[0], setActiveLegends = _t[1];
|
|
36
52
|
var onActiveLegendsChange = function (keys) {
|
|
37
53
|
setActiveLegends(keys);
|
|
38
54
|
if (props.onSchemaChange) {
|
|
@@ -77,8 +93,15 @@ define(["require", "exports", "tslib", "react", "@fluentui/react", "../DonutChar
|
|
|
77
93
|
return (React.createElement(ResponsiveVerticalStackedBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToVSBCProps)(plotlySchema, colorMap, isDarkTheme, fallbackVSBC), commonProps)));
|
|
78
94
|
};
|
|
79
95
|
var exportAsImage = React.useCallback(function (opts) {
|
|
80
|
-
|
|
81
|
-
|
|
96
|
+
return new Promise(function (resolve, reject) {
|
|
97
|
+
if (!chartRef.current || typeof chartRef.current.toImage !== 'function') {
|
|
98
|
+
return reject(Error('Chart cannot be exported as image'));
|
|
99
|
+
}
|
|
100
|
+
chartRef.current
|
|
101
|
+
.toImage(tslib_1.__assign({ background: theme.semanticColors.bodyBackground, scale: 5 }, opts))
|
|
102
|
+
.then(resolve)
|
|
103
|
+
.catch(reject);
|
|
104
|
+
});
|
|
82
105
|
}, [theme]);
|
|
83
106
|
React.useImperativeHandle(props.componentRef, function () { return ({
|
|
84
107
|
exportAsImage: exportAsImage,
|
|
@@ -88,7 +111,11 @@ define(["require", "exports", "tslib", "react", "@fluentui/react", "../DonutChar
|
|
|
88
111
|
return (React.createElement(ResponsiveDonutChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToDonutProps)(plotlySchema, colorMap, isDarkTheme), commonProps)));
|
|
89
112
|
case 'bar':
|
|
90
113
|
var orientation_1 = plotlyInput.data[0].orientation;
|
|
91
|
-
|
|
114
|
+
var containsBase = plotlyInput.data.some(function (series) { return series.base !== undefined; });
|
|
115
|
+
if (orientation_1 === 'h' && containsBase) {
|
|
116
|
+
throw new Error('Unsupported chart type: Gantt');
|
|
117
|
+
}
|
|
118
|
+
else if (orientation_1 === 'h' && (0, PlotlySchemaAdapter_1.isNumberArray)(plotlyInput.data[0].x)) {
|
|
92
119
|
return (React.createElement(ResponsiveHorizontalBarChartWithAxis, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToHorizontalBarWithAxisProps)(plotlySchema, colorMap, isDarkTheme), commonProps)));
|
|
93
120
|
}
|
|
94
121
|
else {
|
|
@@ -123,6 +150,8 @@ define(["require", "exports", "tslib", "react", "@fluentui/react", "../DonutChar
|
|
|
123
150
|
throw new Error("Unsupported chart - type: ".concat((_p = plotlyInput.data[0]) === null || _p === void 0 ? void 0 : _p.type, ", mode: ").concat((_q = plotlyInput.data[0]) === null || _q === void 0 ? void 0 : _q.mode));
|
|
124
151
|
case 'histogram':
|
|
125
152
|
return (React.createElement(ResponsiveVerticalBarChart, tslib_1.__assign({}, (0, PlotlySchemaAdapter_1.transformPlotlyJsonToVBCProps)(plotlySchema, colorMap, isDarkTheme), commonProps)));
|
|
153
|
+
case 'contour':
|
|
154
|
+
throw new Error("Unsupported chart - type: ".concat((_r = plotlyInput.data[0]) === null || _r === void 0 ? void 0 : _r.type));
|
|
126
155
|
default:
|
|
127
156
|
var xValues = plotlyInput.data[0].x;
|
|
128
157
|
var yValues = plotlyInput.data[0].y;
|
|
@@ -132,7 +161,7 @@ define(["require", "exports", "tslib", "react", "@fluentui/react", "../DonutChar
|
|
|
132
161
|
};
|
|
133
162
|
return checkAndRenderChart(renderLineChartJsx);
|
|
134
163
|
}
|
|
135
|
-
throw new Error("Unsupported chart type :".concat((
|
|
164
|
+
throw new Error("Unsupported chart type :".concat((_s = plotlyInput.data[0]) === null || _s === void 0 ? void 0 : _s.type));
|
|
136
165
|
}
|
|
137
166
|
});
|
|
138
167
|
exports.DeclarativeChart.displayName = 'DeclarativeChart';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DeclarativeChart.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/DeclarativeChart.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport * as React from 'react';\nimport { useTheme } from '@fluentui/react';\nimport { IRefObject } from '@fluentui/react/lib/Utilities';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport { PlotData, PlotlySchema } from './PlotlySchema';\nimport {\n isArrayOrTypedArray,\n isDateArray,\n isNumberArray,\n isMonthArray,\n sanitizeJson,\n updateXValues,\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n isLineData,\n} from './PlotlySchemaAdapter';\nimport { LineChart, ILineChartProps } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart, IAreaChartProps } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\nimport { IImageExportOptions, toImage } from './imageExporter';\nimport { IChart } from '../../types/index';\nimport { withResponsiveContainer } from '../ResponsiveContainer/withResponsiveContainer';\n\nconst ResponsiveDonutChart = withResponsiveContainer(DonutChart);\nconst ResponsiveVerticalStackedBarChart = withResponsiveContainer(VerticalStackedBarChart);\nconst ResponsiveLineChart = withResponsiveContainer(LineChart);\nconst ResponsiveHorizontalBarChartWithAxis = withResponsiveContainer(HorizontalBarChartWithAxis);\nconst ResponsiveAreaChart = withResponsiveContainer(AreaChart);\nconst ResponsiveHeatMapChart = withResponsiveContainer(HeatMapChart);\nconst ResponsiveSankeyChart = withResponsiveContainer(SankeyChart);\nconst ResponsiveGaugeChart = withResponsiveContainer(GaugeChart);\nconst ResponsiveGroupedVerticalBarChart = withResponsiveContainer(GroupedVerticalBarChart);\nconst ResponsiveVerticalBarChart = withResponsiveContainer(VerticalBarChart);\n\n/**\n * DeclarativeChart schema.\n * {@docCategory DeclarativeChart}\n */\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plotlySchema: any;\n}\n\n/**\n * DeclarativeChart props.\n * {@docCategory DeclarativeChart}\n */\nexport interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * The schema representing the chart data, layout and configuration\n */\n chartSchema: Schema;\n\n /**\n * Callback when an event occurs\n */\n onSchemaChange?: (eventData: Schema) => void;\n\n /**\n * Optional callback to access the IDeclarativeChart interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject<IDeclarativeChart>;\n}\n\n/**\n * {@docCategory DeclarativeChart}\n */\nexport interface IDeclarativeChart {\n exportAsImage: (opts?: IImageExportOptions) => Promise<string>;\n}\n\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\n};\n\n/**\n * DeclarativeChart component.\n * {@docCategory DeclarativeChart}\n */\nexport const DeclarativeChart: React.FunctionComponent<DeclarativeChartProps> = React.forwardRef<\n HTMLDivElement,\n DeclarativeChartProps\n>((props, forwardedRef) => {\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n const plotlyInput = plotlySchema as PlotlySchema;\n let { selectedLegends } = plotlySchema;\n const colorMap = useColorMapping();\n const theme = useTheme();\n const isDarkTheme = theme?.isInverted ?? false;\n const chartRef = React.useRef<IChart>(null);\n\n if (!isArrayOrTypedArray(selectedLegends)) {\n selectedLegends = [];\n }\n\n const [activeLegends, setActiveLegends] = React.useState<string[]>(selectedLegends);\n const onActiveLegendsChange = (keys: string[]) => {\n setActiveLegends(keys);\n if (props.onSchemaChange) {\n props.onSchemaChange({ plotlySchema: { plotlyInput, selectedLegends: keys } });\n }\n };\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { selectedLegends } = plotlySchema;\n setActiveLegends(selectedLegends ?? []);\n }, [props.chartSchema]);\n\n const multiSelectLegendProps = {\n canSelectMultipleLegends: true,\n onChange: onActiveLegendsChange,\n selectedLegends: activeLegends,\n };\n\n const commonProps = {\n legendProps: multiSelectLegendProps,\n componentRef: chartRef,\n calloutProps: { layerProps: { eventBubblingEnabled: true } },\n };\n\n const checkAndRenderChart = (\n renderChartJsx: (chartProps: ILineChartProps | IAreaChartProps) => JSX.Element,\n isAreaChart: boolean = false,\n ) => {\n let fallbackVSBC = false;\n const xValues = (plotlyInput.data[0] as PlotData).x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const isXMonth = isMonthArray(xValues);\n if (isXDate || isXNumber) {\n const chartProps: ILineChartProps | IAreaChartProps = {\n ...transformPlotlyJsonToScatterChartProps(\n { data: plotlyInput.data, layout: plotlyInput.layout },\n isAreaChart,\n colorMap,\n isDarkTheme,\n ),\n ...commonProps,\n };\n return renderChartJsx(chartProps);\n } else if (isXMonth) {\n const updatedData = plotlyInput.data.map((dataPoint: PlotData) => ({\n ...dataPoint,\n x: updateXValues(dataPoint.x),\n }));\n const chartProps: ILineChartProps | IAreaChartProps = {\n ...transformPlotlyJsonToScatterChartProps(\n { data: updatedData, layout: plotlyInput.layout },\n isAreaChart,\n colorMap,\n isDarkTheme,\n ),\n ...commonProps,\n };\n return renderChartJsx(chartProps);\n }\n // Unsupported schema, render as VerticalStackedBarChart\n fallbackVSBC = true;\n return (\n <ResponsiveVerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme, fallbackVSBC)}\n {...commonProps}\n />\n );\n };\n\n const exportAsImage = React.useCallback(\n (opts?: IImageExportOptions) => {\n return toImage(chartRef.current?.chartContainer, {\n background: theme.semanticColors.bodyBackground,\n scale: 5,\n ...opts,\n });\n },\n [theme],\n );\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n exportAsImage,\n }),\n [exportAsImage],\n );\n\n switch (plotlyInput.data[0].type) {\n case 'pie':\n return (\n <ResponsiveDonutChart\n {...transformPlotlyJsonToDonutProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'bar':\n const orientation = plotlyInput.data[0].orientation;\n if (orientation === 'h' && isNumberArray((plotlyInput.data[0] as PlotData).x)) {\n return (\n <ResponsiveHorizontalBarChartWithAxis\n {...transformPlotlyJsonToHorizontalBarWithAxisProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n } else {\n const containsLines = plotlyInput.data.some(\n series => series.type === 'scatter' || isLineData(series as Partial<PlotData>),\n );\n if (['group', 'overlay'].includes(plotlySchema?.layout?.barmode) && !containsLines) {\n return (\n <ResponsiveGroupedVerticalBarChart\n {...transformPlotlyJsonToGVBCProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n }\n return (\n <ResponsiveVerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n }\n case 'scatter':\n if (plotlyInput.data[0]?.mode?.includes('markers') && !isNumberArray(plotlyInput.data[0].y!)) {\n throw new Error(\n `Unsupported chart - type :${plotlyInput.data[0]?.type}, mode: ${plotlyInput.data[0]?.mode}\n , xAxisType: String or Date`,\n );\n }\n const isAreaChart = plotlyInput.data.some(\n (series: PlotData) => series.fill === 'tonexty' || series.fill === 'tozeroy',\n );\n const isScatterMarkers = plotlyInput.data[0]?.mode?.includes('markers');\n const renderChartJsx = (chartProps: ILineChartProps | IAreaChartProps) => {\n if (isAreaChart) {\n return <ResponsiveAreaChart {...chartProps} />;\n }\n return <ResponsiveLineChart {...chartProps} lineMode={isScatterMarkers ? 'scatter' : 'default'} />;\n };\n return checkAndRenderChart(renderChartJsx, isAreaChart);\n case 'heatmap':\n return (\n <ResponsiveHeatMapChart\n {...transformPlotlyJsonToHeatmapProps(plotlySchema)}\n {...commonProps}\n legendProps={{}}\n />\n );\n case 'sankey':\n return (\n <ResponsiveSankeyChart\n {...transformPlotlyJsonToSankeyProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'indicator':\n case 'gauge':\n if (plotlyInput.data?.[0]?.mode?.includes('gauge') || plotlyInput.data?.[0]?.type === 'gauge') {\n return (\n <ResponsiveGaugeChart\n {...transformPlotlyJsonToGaugeProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n }\n throw new Error(`Unsupported chart - type: ${plotlyInput.data[0]?.type}, mode: ${plotlyInput.data[0]?.mode}`);\n case 'histogram':\n return (\n <ResponsiveVerticalBarChart\n {...transformPlotlyJsonToVBCProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n default:\n const xValues = (plotlyInput.data[0] as PlotData).x;\n const yValues = (plotlyInput.data[0] as PlotData).y;\n if (xValues && yValues && xValues.length > 0 && yValues.length > 0) {\n const renderLineChartJsx = (chartProps: ILineChartProps) => {\n return <ResponsiveLineChart {...chartProps} />;\n };\n return checkAndRenderChart(renderLineChartJsx);\n }\n throw new Error(`Unsupported chart type :${plotlyInput.data[0]?.type}`);\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"]}
|
|
1
|
+
{"version":3,"file":"DeclarativeChart.js","sourceRoot":"../src/","sources":["components/DeclarativeChart/DeclarativeChart.tsx"],"names":[],"mappings":";;;;IAoCA,IAAM,oBAAoB,GAAG,IAAA,iDAAuB,EAAC,kBAAU,CAAC,CAAC;IACjE,IAAM,iCAAiC,GAAG,IAAA,iDAAuB,EAAC,+BAAuB,CAAC,CAAC;IAC3F,IAAM,mBAAmB,GAAG,IAAA,iDAAuB,EAAC,iBAAS,CAAC,CAAC;IAC/D,IAAM,oCAAoC,GAAG,IAAA,iDAAuB,EAAC,kCAA0B,CAAC,CAAC;IACjG,IAAM,mBAAmB,GAAG,IAAA,iDAAuB,EAAC,iBAAS,CAAC,CAAC;IAC/D,IAAM,sBAAsB,GAAG,IAAA,iDAAuB,EAAC,oBAAY,CAAC,CAAC;IACrE,IAAM,qBAAqB,GAAG,IAAA,iDAAuB,EAAC,yBAAW,CAAC,CAAC;IACnE,IAAM,oBAAoB,GAAG,IAAA,iDAAuB,EAAC,kBAAU,CAAC,CAAC;IACjE,IAAM,iCAAiC,GAAG,IAAA,iDAAuB,EAAC,+BAAuB,CAAC,CAAC;IAC3F,IAAM,0BAA0B,GAAG,IAAA,iDAAuB,EAAC,wBAAgB,CAAC,CAAC;IA2C7E,IAAM,eAAe,GAAG;QACtB,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,GAAG,EAAkB,CAAC,CAAC;QACzD,OAAO,QAAQ,CAAC;IAClB,CAAC,CAAC;IAEF;;;OAGG;IACU,QAAA,gBAAgB,GAAmD,KAAK,CAAC,UAAU,CAG9F,UAAC,KAAK,EAAE,YAAY;;QACZ,IAAA,YAAY,GAAK,IAAA,kCAAY,EAAC,KAAK,CAAC,WAAW,CAAC,aAApC,CAAqC;QACzD,IAAM,WAAW,GAAwB,CAAC;YACxC,IAAI,CAAC;gBACH,OAAO,YAA4B,CAAC;YACtC,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,iCAA0B,KAAK,CAAE,CAAC,CAAC;YACrD,CAAC;QACH,CAAC,CAAC,EAAE,CAAC;QAEL,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QACK,IAAA,eAAe,GAAK,YAAY,gBAAjB,CAAkB;QACvC,IAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;QACnC,IAAM,KAAK,GAAG,IAAA,gBAAQ,GAAE,CAAC;QACzB,IAAM,WAAW,GAAG,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,UAAU,mCAAI,KAAK,CAAC;QAC/C,IAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAS,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,IAAA,yCAAmB,EAAC,eAAe,CAAC,EAAE,CAAC;YAC1C,eAAe,GAAG,EAAE,CAAC;QACvB,CAAC;QAEK,IAAA,KAAoC,KAAK,CAAC,QAAQ,CAAW,eAAe,CAAC,EAA5E,aAAa,QAAA,EAAE,gBAAgB,QAA6C,CAAC;QACpF,IAAM,qBAAqB,GAAG,UAAC,IAAc;YAC3C,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,KAAK,CAAC,cAAc,CAAC,EAAE,YAAY,EAAE,EAAE,WAAW,aAAA,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,CAAC,SAAS,CAAC;YACd,wDAAwD;YAChD,IAAA,YAAY,GAAK,IAAA,kCAAY,EAAC,KAAK,CAAC,WAAW,CAAC,aAApC,CAAqC;YACzD,wDAAwD;YAChD,IAAA,eAAe,GAAK,YAAY,gBAAjB,CAAkB;YACzC,gBAAgB,CAAC,eAAe,aAAf,eAAe,cAAf,eAAe,GAAI,EAAE,CAAC,CAAC;QAC1C,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAExB,IAAM,sBAAsB,GAAG;YAC7B,wBAAwB,EAAE,IAAI;YAC9B,QAAQ,EAAE,qBAAqB;YAC/B,eAAe,EAAE,aAAa;SAC/B,CAAC;QAEF,IAAM,WAAW,GAAG;YAClB,WAAW,EAAE,sBAAsB;YACnC,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,EAAE,UAAU,EAAE,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE;SAC7D,CAAC;QAEF,IAAM,mBAAmB,GAAG,UAC1B,cAA8E,EAC9E,WAA4B;YAA5B,4BAAA,EAAA,mBAA4B;YAE5B,IAAI,YAAY,GAAG,KAAK,CAAC;YACzB,IAAM,OAAO,GAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAc,CAAC,CAAC,CAAC;YACpD,IAAM,OAAO,GAAG,IAAA,iCAAW,EAAC,OAAO,CAAC,CAAC;YACrC,IAAM,SAAS,GAAG,IAAA,mCAAa,EAAC,OAAO,CAAC,CAAC;YACzC,IAAM,QAAQ,GAAG,IAAA,kCAAY,EAAC,OAAO,CAAC,CAAC;YACvC,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;gBACzB,IAAM,UAAU,yCACX,IAAA,4DAAsC,EACvC,EAAE,IAAI,EAAE,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EACtD,WAAW,EACX,QAAQ,EACR,WAAW,CACZ,GACE,WAAW,CACf,CAAC;gBACF,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;iBAAM,IAAI,QAAQ,EAAE,CAAC;gBACpB,IAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,UAAC,SAAmB,IAAK,OAAA,uCAC7D,SAAS,KACZ,CAAC,EAAE,IAAA,mCAAa,EAAC,SAAS,CAAC,CAAC,CAAC,IAC7B,EAHgE,CAGhE,CAAC,CAAC;gBACJ,IAAM,UAAU,yCACX,IAAA,4DAAsC,EACvC,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,EACjD,WAAW,EACX,QAAQ,EACR,WAAW,CACZ,GACE,WAAW,CACf,CAAC;gBACF,OAAO,cAAc,CAAC,UAAU,CAAC,CAAC;YACpC,CAAC;YACD,wDAAwD;YACxD,YAAY,GAAG,IAAI,CAAC;YACpB,OAAO,CACL,oBAAC,iCAAiC,uBAC5B,IAAA,oDAA8B,EAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,YAAY,CAAC,EACjF,WAAW,EACf,CACH,CAAC;QACJ,CAAC,CAAC;QAEF,IAAM,aAAa,GAAG,KAAK,CAAC,WAAW,CACrC,UAAC,IAA0B;YACzB,OAAO,IAAI,OAAO,CAAC,UAAC,OAAO,EAAE,MAAM;gBACjC,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,QAAQ,CAAC,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;oBACxE,OAAO,MAAM,CAAC,KAAK,CAAC,mCAAmC,CAAC,CAAC,CAAC;gBAC5D,CAAC;gBAED,QAAQ,CAAC,OAAO;qBACb,OAAO,oBACN,UAAU,EAAE,KAAK,CAAC,cAAc,CAAC,cAAc,EAC/C,KAAK,EAAE,CAAC,IACL,IAAI,EACP;qBACD,IAAI,CAAC,OAAO,CAAC;qBACb,KAAK,CAAC,MAAM,CAAC,CAAC;YACnB,CAAC,CAAC,CAAC;QACL,CAAC,EACD,CAAC,KAAK,CAAC,CACR,CAAC;QAEF,KAAK,CAAC,mBAAmB,CACvB,KAAK,CAAC,YAAY,EAClB,cAAM,OAAA,CAAC;YACL,aAAa,eAAA;SACd,CAAC,EAFI,CAEJ,EACF,CAAC,aAAa,CAAC,CAChB,CAAC;QAEF,QAAQ,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACjC,KAAK,KAAK;gBACR,OAAO,CACL,oBAAC,oBAAoB,uBACf,IAAA,qDAA+B,EAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,EACpE,WAAW,EACf,CACH,CAAC;YACJ,KAAK,KAAK;gBACR,IAAM,aAAW,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC;gBACpD,IAAM,YAAY,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,UAAC,MAAgB,IAAK,OAAA,MAAM,CAAC,IAAI,KAAK,SAAS,EAAzB,CAAyB,CAAC,CAAC;gBAC5F,IAAI,aAAW,KAAK,GAAG,IAAI,YAAY,EAAE,CAAC;oBACxC,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;gBACnD,CAAC;qBAAM,IAAI,aAAW,KAAK,GAAG,IAAI,IAAA,mCAAa,EAAE,WAAW,CAAC,IAAI,CAAC,CAAC,CAAc,CAAC,CAAC,CAAC,EAAE,CAAC;oBACrF,OAAO,CACL,oBAAC,oCAAoC,uBAC/B,IAAA,qEAA+C,EAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,EACpF,WAAW,EACf,CACH,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,IAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CACzC,UAAA,MAAM,IAAI,OAAA,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,IAAA,gCAAU,EAAC,MAA2B,CAAC,EAApE,CAAoE,CAC/E,CAAC;oBACF,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,QAAQ,CAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,MAAM,0CAAE,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;wBACnF,OAAO,CACL,oBAAC,iCAAiC,uBAC5B,IAAA,oDAA8B,EAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,EACnE,WAAW,EACf,CACH,CAAC;oBACJ,CAAC;oBACD,OAAO,CACL,oBAAC,iCAAiC,uBAC5B,IAAA,oDAA8B,EAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,EACnE,WAAW,EACf,CACH,CAAC;gBACJ,CAAC;YACH,KAAK,SAAS;gBACZ,IAAI,CAAA,MAAA,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,0CAAE,QAAQ,CAAC,SAAS,CAAC,KAAI,CAAC,IAAA,mCAAa,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;oBAC7F,MAAM,IAAI,KAAK,CACb,oCAA6B,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,qBAAW,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,4CAC9D,CAC7B,CAAC;gBACJ,CAAC;gBACD,IAAM,aAAW,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CACvC,UAAC,MAAgB,IAAK,OAAA,MAAM,CAAC,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAtD,CAAsD,CAC7E,CAAC;gBACF,IAAM,kBAAgB,GAAG,MAAA,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,0CAAE,QAAQ,CAAC,SAAS,CAAC,CAAC;gBACxE,IAAM,cAAc,GAAG,UAAC,UAA6C;oBACnE,IAAI,aAAW,EAAE,CAAC;wBAChB,OAAO,oBAAC,mBAAmB,uBAAK,UAAU,EAAI,CAAC;oBACjD,CAAC;oBACD,OAAO,oBAAC,mBAAmB,uBAAK,UAAU,IAAE,QAAQ,EAAE,kBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,IAAI,CAAC;gBACrG,CAAC,CAAC;gBACF,OAAO,mBAAmB,CAAC,cAAc,EAAE,aAAW,CAAC,CAAC;YAC1D,KAAK,SAAS;gBACZ,OAAO,CACL,oBAAC,sBAAsB,uBACjB,IAAA,uDAAiC,EAAC,YAAY,CAAC,EAC/C,WAAW,IACf,WAAW,EAAE,EAAE,IACf,CACH,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO,CACL,oBAAC,qBAAqB,uBAChB,IAAA,sDAAgC,EAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,EACrE,WAAW,EACf,CACH,CAAC;YACJ,KAAK,WAAW,CAAC;YACjB,KAAK,OAAO;gBACV,IAAI,CAAA,MAAA,MAAA,MAAA,WAAW,CAAC,IAAI,0CAAG,CAAC,CAAC,0CAAE,IAAI,0CAAE,QAAQ,CAAC,OAAO,CAAC,KAAI,CAAA,MAAA,MAAA,WAAW,CAAC,IAAI,0CAAG,CAAC,CAAC,0CAAE,IAAI,MAAK,OAAO,EAAE,CAAC;oBAC9F,OAAO,CACL,oBAAC,oBAAoB,uBACf,IAAA,qDAA+B,EAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,EACpE,WAAW,EACf,CACH,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,oCAA6B,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,qBAAW,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAE,CAAC,CAAC;YAChH,KAAK,WAAW;gBACd,OAAO,CACL,oBAAC,0BAA0B,uBACrB,IAAA,mDAA6B,EAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,CAAC,EAClE,WAAW,EACf,CACH,CAAC;YACJ,KAAK,SAAS;gBACZ,MAAM,IAAI,KAAK,CAAC,oCAA6B,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAE,CAAC,CAAC;YAC5E;gBACE,IAAM,OAAO,GAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAc,CAAC,CAAC,CAAC;gBACpD,IAAM,OAAO,GAAI,WAAW,CAAC,IAAI,CAAC,CAAC,CAAc,CAAC,CAAC,CAAC;gBACpD,IAAI,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACnE,IAAM,kBAAkB,GAAG,UAAC,UAA2B;wBACrD,OAAO,oBAAC,mBAAmB,uBAAK,UAAU,EAAI,CAAC;oBACjD,CAAC,CAAC;oBACF,OAAO,mBAAmB,CAAC,kBAAkB,CAAC,CAAC;gBACjD,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,kCAA2B,MAAA,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,0CAAE,IAAI,CAAE,CAAC,CAAC;QAC5E,CAAC;IACH,CAAC,CAAC,CAAC;IACH,wBAAgB,CAAC,WAAW,GAAG,kBAAkB,CAAC","sourcesContent":["/* eslint-disable @typescript-eslint/naming-convention */\nimport * as React from 'react';\nimport { useTheme } from '@fluentui/react';\nimport { IRefObject } from '@fluentui/react/lib/Utilities';\nimport { DonutChart } from '../DonutChart/index';\nimport { VerticalStackedBarChart } from '../VerticalStackedBarChart/index';\nimport { PlotData, PlotlySchema } from './PlotlySchema';\nimport {\n isArrayOrTypedArray,\n isDateArray,\n isNumberArray,\n isMonthArray,\n sanitizeJson,\n updateXValues,\n transformPlotlyJsonToDonutProps,\n transformPlotlyJsonToVSBCProps,\n transformPlotlyJsonToScatterChartProps,\n transformPlotlyJsonToHorizontalBarWithAxisProps,\n transformPlotlyJsonToHeatmapProps,\n transformPlotlyJsonToSankeyProps,\n transformPlotlyJsonToGaugeProps,\n transformPlotlyJsonToGVBCProps,\n transformPlotlyJsonToVBCProps,\n isLineData,\n} from './PlotlySchemaAdapter';\nimport { LineChart, ILineChartProps } from '../LineChart/index';\nimport { HorizontalBarChartWithAxis } from '../HorizontalBarChartWithAxis/index';\nimport { AreaChart, IAreaChartProps } from '../AreaChart/index';\nimport { HeatMapChart } from '../HeatMapChart/index';\nimport { SankeyChart } from '../SankeyChart/SankeyChart';\nimport { GaugeChart } from '../GaugeChart/index';\nimport { GroupedVerticalBarChart } from '../GroupedVerticalBarChart/index';\nimport { VerticalBarChart } from '../VerticalBarChart/index';\nimport { IChart, IImageExportOptions } from '../../types/index';\nimport { withResponsiveContainer } from '../ResponsiveContainer/withResponsiveContainer';\n\nconst ResponsiveDonutChart = withResponsiveContainer(DonutChart);\nconst ResponsiveVerticalStackedBarChart = withResponsiveContainer(VerticalStackedBarChart);\nconst ResponsiveLineChart = withResponsiveContainer(LineChart);\nconst ResponsiveHorizontalBarChartWithAxis = withResponsiveContainer(HorizontalBarChartWithAxis);\nconst ResponsiveAreaChart = withResponsiveContainer(AreaChart);\nconst ResponsiveHeatMapChart = withResponsiveContainer(HeatMapChart);\nconst ResponsiveSankeyChart = withResponsiveContainer(SankeyChart);\nconst ResponsiveGaugeChart = withResponsiveContainer(GaugeChart);\nconst ResponsiveGroupedVerticalBarChart = withResponsiveContainer(GroupedVerticalBarChart);\nconst ResponsiveVerticalBarChart = withResponsiveContainer(VerticalBarChart);\n\n/**\n * DeclarativeChart schema.\n * {@docCategory DeclarativeChart}\n */\nexport interface Schema {\n /**\n * Plotly schema represented as JSON object\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n plotlySchema: any;\n}\n\n/**\n * DeclarativeChart props.\n * {@docCategory DeclarativeChart}\n */\nexport interface DeclarativeChartProps extends React.RefAttributes<HTMLDivElement> {\n /**\n * The schema representing the chart data, layout and configuration\n */\n chartSchema: Schema;\n\n /**\n * Callback when an event occurs\n */\n onSchemaChange?: (eventData: Schema) => void;\n\n /**\n * Optional callback to access the IDeclarativeChart interface. Use this instead of ref for accessing\n * the public methods and properties of the component.\n */\n componentRef?: IRefObject<IDeclarativeChart>;\n}\n\n/**\n * {@docCategory DeclarativeChart}\n */\nexport interface IDeclarativeChart {\n exportAsImage: (opts?: IImageExportOptions) => Promise<string>;\n}\n\nconst useColorMapping = () => {\n const colorMap = React.useRef(new Map<string, string>());\n return colorMap;\n};\n\n/**\n * DeclarativeChart component.\n * {@docCategory DeclarativeChart}\n */\nexport const DeclarativeChart: React.FunctionComponent<DeclarativeChartProps> = React.forwardRef<\n HTMLDivElement,\n DeclarativeChartProps\n>((props, forwardedRef) => {\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n const plotlyInput: PlotlySchema | null = (() => {\n try {\n return plotlySchema as PlotlySchema;\n } catch (error) {\n throw new Error(`Invalid plotly schema: ${error}`);\n }\n })();\n\n if (!plotlyInput) {\n throw new Error('Plotly input is null or undefined');\n }\n if (!plotlyInput.data) {\n throw new Error('Plotly input data is null or undefined');\n }\n if (plotlyInput.data.length === 0) {\n throw new Error('Plotly input data is empty');\n }\n let { selectedLegends } = plotlySchema;\n const colorMap = useColorMapping();\n const theme = useTheme();\n const isDarkTheme = theme?.isInverted ?? false;\n const chartRef = React.useRef<IChart>(null);\n\n if (!isArrayOrTypedArray(selectedLegends)) {\n selectedLegends = [];\n }\n\n const [activeLegends, setActiveLegends] = React.useState<string[]>(selectedLegends);\n const onActiveLegendsChange = (keys: string[]) => {\n setActiveLegends(keys);\n if (props.onSchemaChange) {\n props.onSchemaChange({ plotlySchema: { plotlyInput, selectedLegends: keys } });\n }\n };\n\n React.useEffect(() => {\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { plotlySchema } = sanitizeJson(props.chartSchema);\n // eslint-disable-next-line @typescript-eslint/no-shadow\n const { selectedLegends } = plotlySchema;\n setActiveLegends(selectedLegends ?? []);\n }, [props.chartSchema]);\n\n const multiSelectLegendProps = {\n canSelectMultipleLegends: true,\n onChange: onActiveLegendsChange,\n selectedLegends: activeLegends,\n };\n\n const commonProps = {\n legendProps: multiSelectLegendProps,\n componentRef: chartRef,\n calloutProps: { layerProps: { eventBubblingEnabled: true } },\n };\n\n const checkAndRenderChart = (\n renderChartJsx: (chartProps: ILineChartProps | IAreaChartProps) => JSX.Element,\n isAreaChart: boolean = false,\n ) => {\n let fallbackVSBC = false;\n const xValues = (plotlyInput.data[0] as PlotData).x;\n const isXDate = isDateArray(xValues);\n const isXNumber = isNumberArray(xValues);\n const isXMonth = isMonthArray(xValues);\n if (isXDate || isXNumber) {\n const chartProps: ILineChartProps | IAreaChartProps = {\n ...transformPlotlyJsonToScatterChartProps(\n { data: plotlyInput.data, layout: plotlyInput.layout },\n isAreaChart,\n colorMap,\n isDarkTheme,\n ),\n ...commonProps,\n };\n return renderChartJsx(chartProps);\n } else if (isXMonth) {\n const updatedData = plotlyInput.data.map((dataPoint: PlotData) => ({\n ...dataPoint,\n x: updateXValues(dataPoint.x),\n }));\n const chartProps: ILineChartProps | IAreaChartProps = {\n ...transformPlotlyJsonToScatterChartProps(\n { data: updatedData, layout: plotlyInput.layout },\n isAreaChart,\n colorMap,\n isDarkTheme,\n ),\n ...commonProps,\n };\n return renderChartJsx(chartProps);\n }\n // Unsupported schema, render as VerticalStackedBarChart\n fallbackVSBC = true;\n return (\n <ResponsiveVerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme, fallbackVSBC)}\n {...commonProps}\n />\n );\n };\n\n const exportAsImage = React.useCallback(\n (opts?: IImageExportOptions): Promise<string> => {\n return new Promise((resolve, reject) => {\n if (!chartRef.current || typeof chartRef.current.toImage !== 'function') {\n return reject(Error('Chart cannot be exported as image'));\n }\n\n chartRef.current\n .toImage({\n background: theme.semanticColors.bodyBackground,\n scale: 5,\n ...opts,\n })\n .then(resolve)\n .catch(reject);\n });\n },\n [theme],\n );\n\n React.useImperativeHandle(\n props.componentRef,\n () => ({\n exportAsImage,\n }),\n [exportAsImage],\n );\n\n switch (plotlyInput.data[0].type) {\n case 'pie':\n return (\n <ResponsiveDonutChart\n {...transformPlotlyJsonToDonutProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'bar':\n const orientation = plotlyInput.data[0].orientation;\n const containsBase = plotlyInput.data.some((series: PlotData) => series.base !== undefined);\n if (orientation === 'h' && containsBase) {\n throw new Error('Unsupported chart type: Gantt');\n } else if (orientation === 'h' && isNumberArray((plotlyInput.data[0] as PlotData).x)) {\n return (\n <ResponsiveHorizontalBarChartWithAxis\n {...transformPlotlyJsonToHorizontalBarWithAxisProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n } else {\n const containsLines = plotlyInput.data.some(\n series => series.type === 'scatter' || isLineData(series as Partial<PlotData>),\n );\n if (['group', 'overlay'].includes(plotlySchema?.layout?.barmode) && !containsLines) {\n return (\n <ResponsiveGroupedVerticalBarChart\n {...transformPlotlyJsonToGVBCProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n }\n return (\n <ResponsiveVerticalStackedBarChart\n {...transformPlotlyJsonToVSBCProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n }\n case 'scatter':\n if (plotlyInput.data[0]?.mode?.includes('markers') && !isNumberArray(plotlyInput.data[0].y!)) {\n throw new Error(\n `Unsupported chart - type :${plotlyInput.data[0]?.type}, mode: ${plotlyInput.data[0]?.mode}\n , xAxisType: String or Date`,\n );\n }\n const isAreaChart = plotlyInput.data.some(\n (series: PlotData) => series.fill === 'tonexty' || series.fill === 'tozeroy',\n );\n const isScatterMarkers = plotlyInput.data[0]?.mode?.includes('markers');\n const renderChartJsx = (chartProps: ILineChartProps | IAreaChartProps) => {\n if (isAreaChart) {\n return <ResponsiveAreaChart {...chartProps} />;\n }\n return <ResponsiveLineChart {...chartProps} lineMode={isScatterMarkers ? 'scatter' : 'default'} />;\n };\n return checkAndRenderChart(renderChartJsx, isAreaChart);\n case 'heatmap':\n return (\n <ResponsiveHeatMapChart\n {...transformPlotlyJsonToHeatmapProps(plotlySchema)}\n {...commonProps}\n legendProps={{}}\n />\n );\n case 'sankey':\n return (\n <ResponsiveSankeyChart\n {...transformPlotlyJsonToSankeyProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'indicator':\n case 'gauge':\n if (plotlyInput.data?.[0]?.mode?.includes('gauge') || plotlyInput.data?.[0]?.type === 'gauge') {\n return (\n <ResponsiveGaugeChart\n {...transformPlotlyJsonToGaugeProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n }\n throw new Error(`Unsupported chart - type: ${plotlyInput.data[0]?.type}, mode: ${plotlyInput.data[0]?.mode}`);\n case 'histogram':\n return (\n <ResponsiveVerticalBarChart\n {...transformPlotlyJsonToVBCProps(plotlySchema, colorMap, isDarkTheme)}\n {...commonProps}\n />\n );\n case 'contour':\n throw new Error(`Unsupported chart - type: ${plotlyInput.data[0]?.type}`);\n default:\n const xValues = (plotlyInput.data[0] as PlotData).x;\n const yValues = (plotlyInput.data[0] as PlotData).y;\n if (xValues && yValues && xValues.length > 0 && yValues.length > 0) {\n const renderLineChartJsx = (chartProps: ILineChartProps) => {\n return <ResponsiveLineChart {...chartProps} />;\n };\n return checkAndRenderChart(renderLineChartJsx);\n }\n throw new Error(`Unsupported chart type :${plotlyInput.data[0]?.type}`);\n }\n});\nDeclarativeChart.displayName = 'DeclarativeChart';\n"]}
|