@ozen-ui/kit
Version:
React component library
24 lines (23 loc) • 1.15 kB
JavaScript
import { Decimal } from 'decimal.js';
import { isNumber } from '../../utils/number';
export var isValidValue = function (value) {
return value !== '' && !Number.isNaN(value) && isNumber(value);
};
export var isInputInvalid = function (event) {
var ctrlKey = event.ctrlKey, metaKey = event.metaKey, key = event.key;
// проверка на длину кода нужна для того, чтобы не проверять
// нажатия по служебным клавишам (ArrowUp, ArrowDown, etc.)
return !(ctrlKey || metaKey) && key.length === 1 && !!key.match(/[A-Za-z]/g);
};
export var getValue = function (_a) {
var value = _a.value, step = _a.step, min = _a.min, max = _a.max, countDirection = _a.countDirection;
if (typeof value === 'undefined') {
return '';
}
var isIncrement = countDirection === 'increment';
var currentValue = isValidValue(value) ? value : min;
var nextValue = isIncrement
? Decimal.add(currentValue, step).toNumber()
: Decimal.sub(currentValue, step).toNumber();
return isIncrement ? Math.min(nextValue, max) : Math.max(nextValue, min);
};