@ozen-ui/kit
Version:
React component library
30 lines (29 loc) • 1.45 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.getValue = exports.isInputInvalid = exports.isValidValue = void 0;
var decimal_js_1 = require("decimal.js");
var number_1 = require("../../utils/number");
var isValidValue = function (value) {
return value !== '' && !Number.isNaN(value) && (0, number_1.isNumber)(value);
};
exports.isValidValue = isValidValue;
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);
};
exports.isInputInvalid = isInputInvalid;
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 = (0, exports.isValidValue)(value) ? value : min;
var nextValue = isIncrement
? decimal_js_1.Decimal.add(currentValue, step).toNumber()
: decimal_js_1.Decimal.sub(currentValue, step).toNumber();
return isIncrement ? Math.min(nextValue, max) : Math.max(nextValue, min);
};
exports.getValue = getValue;
;