UNPKG

@ozen-ui/kit

Version:

React component library

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