@patternfly/react-charts
Version:
This library provides a set of React chart components for use with the PatternFly reference implementation.
70 lines (67 loc) • 2.29 kB
text/typescript
import { ChartDomain, getDomains } from '../../ChartUtils/chart-domain';
interface ChartBulletDomainInterface {
comparativeErrorMeasureComponent?: React.ReactElement<any>;
comparativeErrorMeasureData?: any[];
comparativeWarningMeasureComponent?: React.ReactElement<any>;
comparativeWarningMeasureData?: any[];
primaryDotMeasureComponent?: React.ReactElement<any>;
primaryDotMeasureData?: any[];
primarySegmentedMeasureComponent?: React.ReactElement<any>;
primarySegmentedMeasureData?: any[];
maxDomain?: any;
minDomain?: any;
qualitativeRangeComponent?: React.ReactElement<any>;
qualitativeRangeData?: any[];
}
/**
* Returns the bullet chart's min and max domain for comparative / primary measures and qualitative range data
*
* @private Not intended as public API and subject to change
*/
export const getBulletDomain = ({
comparativeErrorMeasureComponent,
comparativeErrorMeasureData,
comparativeWarningMeasureComponent,
comparativeWarningMeasureData,
primaryDotMeasureComponent,
primaryDotMeasureData,
primarySegmentedMeasureComponent,
primarySegmentedMeasureData,
maxDomain,
minDomain,
qualitativeRangeComponent,
qualitativeRangeData
}: ChartBulletDomainInterface): ChartDomain => {
const domain = getDomains({
maxDomain,
minDomain,
sources: [
{
component: comparativeErrorMeasureComponent,
data: comparativeErrorMeasureData
},
{
component: comparativeWarningMeasureComponent,
data: comparativeWarningMeasureData
},
{
component: primaryDotMeasureComponent,
data: primaryDotMeasureData
},
{
component: primarySegmentedMeasureComponent,
data: primarySegmentedMeasureData
},
{
component: qualitativeRangeComponent,
data: qualitativeRangeData
}
]
});
// Note that comparative measures and qualitative range bars are currently given an x-value of 1, while the bar widths
// fill the domain. At one point, lines were used to represent comparative warning, comparative error, and zero
// measures. Those components had x-values of 0 and 2, which rendered the lines on top of the comparative measure and
// qualitative range bars.
domain.x = [0, 2];
return domain;
};