UNPKG

@ozen-ui/kit

Version:

React component library

44 lines (43 loc) 1.73 kB
"use strict"; 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;