UNPKG

@patternfly/react-charts

Version:

This library provides a set of React chart components for use with the PatternFly reference implementation.

111 lines 3.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDomains = exports.getDomain = void 0; const victory_core_1 = require("victory-core"); /** * Returns the min and max domain for given data * * @private Not intended as public API and subject to change */ const getDomain = ({ data, maxDomain, minDomain, x, y }) => { // x-domain let xLow = 0; let xHigh = 0; let xLowSearch = true; let xHighSearch = true; if (minDomain !== undefined && minDomain.x !== undefined) { xLow = minDomain.x; xLowSearch = false; } else if (minDomain !== undefined && minDomain.y === undefined) { xLow = minDomain; xLowSearch = false; } if (maxDomain !== undefined && maxDomain.x !== undefined) { xHigh = maxDomain.x; xHighSearch = false; } else if (maxDomain !== undefined && maxDomain.y === undefined) { xHigh = maxDomain; xHighSearch = false; } // y-domain let yLow = 0; let yHigh = 0; let yLowSearch = true; let yHighSearch = true; if (minDomain !== undefined && minDomain.y !== undefined) { yLow = minDomain.y; yLowSearch = false; } else if (minDomain !== undefined && minDomain.x === undefined) { yLow = minDomain; yLowSearch = false; } if (maxDomain !== undefined && maxDomain.y !== undefined) { yHigh = maxDomain.y; yHighSearch = false; } else if (maxDomain !== undefined && maxDomain.x === undefined) { yHigh = maxDomain; yHighSearch = false; } // Search data for max / min range const datum = victory_core_1.Data.formatData(data, { x, y }, ['x', 'y']); datum.forEach((dataPoint) => { if (xLowSearch) { if (dataPoint._x < xLow) { xLow = dataPoint._x; } } if (xHighSearch) { if (dataPoint._x > xHigh) { xHigh = dataPoint._x; } } if (yLowSearch) { if (dataPoint._y < yLow) { yLow = dataPoint._y; } } if (yHighSearch) { if (dataPoint._y > yHigh) { yHigh = dataPoint._y; } } }); return { x: [xLow, xHigh], y: [yLow, yHigh] }; }; exports.getDomain = getDomain; /** * Returns the domain for given min and max properties * * @private Not intended as public API and subject to change */ const getDomains = ({ maxDomain, minDomain, sources }) => { const domains = []; sources.forEach((source) => { const { data: compData = source.data } = source.component ? source.component.props : undefined; const domain = (0, exports.getDomain)({ data: compData, maxDomain, minDomain, x: source.component ? source.component.props.x : undefined, y: source.component ? source.component.props.y : undefined }); domains.push(domain); }); const xDomains = []; const yDomains = []; domains.forEach((domain) => { xDomains.push(...domain.x); yDomains.push(...domain.y); }); const xLow = Math.min(...xDomains); const xHigh = Math.max(...xDomains); const yLow = Math.min(...yDomains); const yHigh = Math.max(...yDomains); return { x: [xLow, xHigh], y: [yLow, yHigh] }; }; exports.getDomains = getDomains; //# sourceMappingURL=chart-domain.js.map