UNPKG

recharts

Version:
48 lines (47 loc) 2.84 kB
import { AxisDomain, NumberDomain } from './types'; export declare function isWellFormedNumberDomain(v: unknown): v is NumberDomain; export declare function extendDomain(providedDomain: NumberDomain, boundaryDomain: NumberDomain, allowDataOverflow: boolean): NumberDomain; /** * So Recharts allows users to provide their own domains, * but it also places some expectations on what the domain is. * We can improve on the typescript typing, but we also need a runtime test to observe that the user-provided domain is well-formed, * that is: an array with exactly two numbers. * * This function does not accept data as an argument. * This is to enable a performance optimization - if the domain is there, * and we know what it is without traversing all the data, * then we don't have to traverse all the data! * * If the user-provided domain is not well-formed, * this function will return undefined - in which case we should traverse the data to calculate the real domain. * * This function is for parsing the numerical domain only. * * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too. * @param allowDataOverflow boolean, provided by users. If true then the data domain wins * * @return [min, max] domain if it's well-formed; undefined if the domain is invalid */ export declare function numericalDomainSpecifiedWithoutRequiringData(userDomain: AxisDomain | undefined, allowDataOverflow: boolean): NumberDomain; /** * So Recharts allows users to provide their own domains, * but it also places some expectations on what the domain is. * We can improve on the typescript typing, but we also need a runtime test * to observe that the user-provided domain is well-formed, * that is: an array with exactly two numbers. * If the user-provided domain is not well-formed, * this function will return undefined - in which case we should traverse the data to calculate the real domain. * * This function is for parsing the numerical domain only. * * You are probably thinking, why does domain need tick count? * Well it adjusts the domain based on where the "nice ticks" land, and nice ticks depend on the tick count. * * @param userDomain external prop, user provided, before validation. Can have various shapes: array, function, special magical strings inside too. * @param dataDomain calculated from data. Can be undefined, as an option for performance optimization * @param allowDataOverflow provided by users. If true then the data domain wins * * @return [min, max] domain if it's well-formed; undefined if the domain is invalid */ export declare function parseNumericalUserDomain(userDomain: AxisDomain | undefined, dataDomain: NumberDomain | undefined, allowDataOverflow: boolean): NumberDomain | undefined;