@ozen-ui/kit
Version:
React component library
67 lines (66 loc) • 1.73 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseDateString = void 0;
var utils_1 = require("../../../../utils");
var parseDateString = function (value, steps) {
if (!(0, utils_1.isNotNil)(value)) {
return null;
}
if (value === '') {
return null;
}
var hasYearsSteps = steps.includes('years');
var hasMonthsSteps = steps.includes('months');
var hasDaysSteps = steps.includes('days');
var splitted = value.split('.');
var day;
var month;
var year;
var offset = 0;
if (hasDaysSteps) {
day = splitted[offset];
offset += 1;
}
if (hasMonthsSteps) {
month = splitted[offset];
offset += 1;
}
if (hasYearsSteps) {
year = splitted[offset];
}
var parts = [];
if (hasYearsSteps) {
parts.push(year);
}
else {
var now = new Date();
parts.push(now.getFullYear().toString());
}
if (hasMonthsSteps) {
parts.push(month);
}
else {
// 3 месяц для кейса, где пользователь вводит 31 день месяца
parts.push('03');
}
if (hasDaysSteps) {
parts.push(day);
}
else {
parts.push('01');
}
var filteredParts = parts.filter(function (part) { return part !== undefined; });
if (filteredParts.length !== 3) {
return null;
}
var stringDate = filteredParts.join('-');
if (stringDate.length !== 10 || !(0, utils_1.isValidDate)(stringDate)) {
return null;
}
return {
year: parts[0],
month: parts[1],
day: parts[2],
};
};
exports.parseDateString = parseDateString;