@ozen-ui/kit
Version:
React component library
44 lines (43 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.maskPastedDate = void 0;
/**
* Функция для обработки вставленного значения.
* Умеет обрабатывать форматы DD.MM.YYYY/DDMMYYYY, либо сочетания вида DDMM/DD.MM.
*/
var maskPastedDate = function (value, steps) {
var digits = value.replace(/\D/g, '').slice(0, 8); // максимум 8 цифр
var hasYearsStep = steps.includes('years');
var hasMonthsStep = steps.includes('months');
var hasDaysStep = steps.includes('days');
// DD
if (hasDaysStep && !hasMonthsStep && !hasYearsStep) {
return digits.slice(0, 2);
}
// MM
if (!hasDaysStep && hasMonthsStep && !hasYearsStep) {
return digits.slice(0, 2);
}
// YYYY
if (!hasDaysStep && !hasMonthsStep && hasYearsStep) {
return digits.slice(0, 4);
}
// DD.MM.YYYY
if (hasDaysStep && hasMonthsStep && hasYearsStep) {
return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 4), ".").concat(digits.slice(4, 8));
}
// DD.MM
if (hasDaysStep && hasMonthsStep && !hasYearsStep) {
return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 4));
}
// DD.YYYY
if (hasDaysStep && !hasMonthsStep && hasYearsStep) {
return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 6));
}
// MM.YYYY
if (!hasDaysStep && hasMonthsStep && hasYearsStep) {
return "".concat(digits.slice(0, 2), ".").concat(digits.slice(2, 6));
}
throw new Error('Не удалось сделать маску для значения');
};
exports.maskPastedDate = maskPastedDate;