@zag-js/numeric-range
Version:
Numeric range utilities
32 lines (30 loc) • 2.21 kB
TypeScript
declare function getMinValueAtIndex(index: number, values: number[], minValue: number): number;
declare function getMaxValueAtIndex(index: number, values: number[], maxValue: number): number;
declare function isValueAtMax(value: number, maxValue: number): boolean;
declare function isValueAtMin(value: number, minValue: number): boolean;
declare function isValueWithinRange(value: number, minValue: number, maxValue: number): boolean;
declare function getRoundedValue(value: number, minValue: number, step: number): number;
declare function clampValue(value: number, minValue: number, maxValue: number): number;
declare function getValuePercent(value: number, minValue: number, maxValue: number): number;
declare function getPercentValue(percent: number, minValue: number, maxValue: number, step: number): number;
declare function roundToStepPrecision(value: number, step: number): number;
declare function snapValueToStep(value: number, min: number | undefined, max: number | undefined, step: number): number;
type RangeContext = {
min: number;
max: number;
step: number;
values: number[];
};
declare function getValueSetterAtIndex(index: number, ctx: RangeContext): (value: number) => number[];
declare function getNextStepValue(index: number, ctx: RangeContext): number[];
declare function getPreviousStepValue(index: number, ctx: RangeContext): number[];
declare function getClosestValueIndex(values: number[], targetValue: number): number;
declare function getValueRanges(values: number[], minValue: number, maxValue: number, gap: number): {
min: number;
max: number;
value: number;
}[];
declare function getValueTransformer(valueA: number[], valueB: number[]): (value: number) => number;
declare function toFixedNumber(value: number, digits?: number, base?: number): number;
declare function mod(value: number, modulo: number): number;
export { clampValue, getClosestValueIndex, getMaxValueAtIndex, getMinValueAtIndex, getNextStepValue, getPercentValue, getPreviousStepValue, getRoundedValue, getValuePercent, getValueRanges, getValueSetterAtIndex, getValueTransformer, isValueAtMax, isValueAtMin, isValueWithinRange, mod, roundToStepPrecision, snapValueToStep, toFixedNumber };