UNPKG

@kubit-ui-web/react-components

Version:

Kubit React Components is a customizable, accessible library of React web components, designed to enhance your application's user experience

40 lines 2.11 kB
import { isValidDate } from '../../../utils/date/validateDate'; import { verifyYear } from './verifyYear'; export const formatValueDate = (value, today, format, dateSeparator = '') => { let formattedValue = value.replace(dateSeparator, '').replace(today, ''); if (value.length > format?.length) { formattedValue = formattedValue.replace(/\s/g, ''); } return formattedValue; }; const matchFormatValueDate = (value, today, format, dateSeparator = '') => { return formatValueDate(value, today, format, dateSeparator).match(new RegExp('.{1,' + format.length + '}', 'g')); }; const verifyFormatDate = (value, minDate, maxDate, today, dateSeparator, format) => { const valueFormatted = formatValueDate(value, today, format, dateSeparator); const date = new Date(valueFormatted); const hasError = !isValidDate(date) || valueFormatted.length !== format.length || !verifyYear(valueFormatted, minDate, maxDate); return { valueFormatted, hasError }; }; const verifyFormatRangeDate = (value, minDate, maxDate, today, dateSeparator, format) => { const valueFormatted = matchFormatValueDate(value, today, format, dateSeparator); if ((valueFormatted?.[0] && !isValidDate(new Date(valueFormatted[0]))) || (valueFormatted?.[1] && !isValidDate(new Date(valueFormatted[1])))) { return { valueFormatted, hasError: true }; } const condition1 = valueFormatted?.[0]?.length === format.length && valueFormatted?.[1]?.length === format.length; const condition2 = valueFormatted && verifyYear(valueFormatted[0], minDate, maxDate) && verifyYear(valueFormatted[1], minDate, maxDate); const hasError = !condition1 || !condition2; return { valueFormatted, hasError }; }; export const verifyFormat = (format, value, minDate, maxDate, today = '', dateSeparator = '', isRange) => { if (isRange) { return verifyFormatRangeDate(value, minDate, maxDate, today, dateSeparator, format); } return verifyFormatDate(value, minDate, maxDate, today, dateSeparator, format); }; //# sourceMappingURL=verifyFormat.js.map