UNPKG

recharts

Version:
52 lines (45 loc) 1.98 kB
import { ReferenceDot } from '../cartesian/ReferenceDot'; import { ReferenceLine } from '../cartesian/ReferenceLine'; import { ReferenceArea } from '../cartesian/ReferenceArea'; import { ifOverflowMatches } from './IfOverflowMatches'; import { findAllByType } from './ReactUtils'; import { isNumber } from './DataUtils'; export var detectReferenceElementsDomain = function detectReferenceElementsDomain(children, domain, axisId, axisType, specifiedTicks) { var lines = findAllByType(children, ReferenceLine.displayName); var dots = findAllByType(children, ReferenceDot.displayName); var elements = lines.concat(dots); var areas = findAllByType(children, ReferenceArea.displayName); var idKey = "".concat(axisType, "Id"); var valueKey = axisType[0]; var finalDomain = domain; if (elements.length) { finalDomain = elements.reduce(function (result, el) { if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[valueKey])) { var value = el.props[valueKey]; return [Math.min(result[0], value), Math.max(result[1], value)]; } return result; }, finalDomain); } if (areas.length) { var key1 = "".concat(valueKey, "1"); var key2 = "".concat(valueKey, "2"); finalDomain = areas.reduce(function (result, el) { if (el.props[idKey] === axisId && ifOverflowMatches(el.props, 'extendDomain') && isNumber(el.props[key1]) && isNumber(el.props[key2])) { var value1 = el.props[key1]; var value2 = el.props[key2]; return [Math.min(result[0], value1, value2), Math.max(result[1], value1, value2)]; } return result; }, finalDomain); } if (specifiedTicks && specifiedTicks.length) { finalDomain = specifiedTicks.reduce(function (result, tick) { if (isNumber(tick)) { return [Math.min(result[0], tick), Math.max(result[1], tick)]; } return result; }, finalDomain); } return finalDomain; };