UNPKG

vuestic-ui

Version:
48 lines (47 loc) 1.52 kB
import { i as isDate } from "../../../utils/is-date.mjs"; import { ref } from "vue"; const defaultParseDateFunction = (text) => new Date(Date.parse(text)); const isValidDate = (d) => isDate(d) && !isNaN(d.getTime()); const useDateParser = (props) => { const isMultipleDates = (text) => { const dates = text.split(props.delimiter); if (dates.length < 2) { return false; } return dates.every((date) => { const parsedDate = (props.parseDate || defaultParseDateFunction)(date); return isValidDate(parsedDate); }); }; const isRange = (text) => text.includes(props.rangeDelimiter); const isValid = ref(true); const parseDate = (text) => { const splitDate = text.split("."); const valueToParse = (splitDate == null ? void 0 : splitDate.length) === 3 ? splitDate.reverse().join("-") : text; const date = (props.parseDate || defaultParseDateFunction)(valueToParse); isValid.value = isValidDate(date); return date; }; const parseDateInputValue = (text) => { isValid.value = true; if (props.parse) { return props.parse(text, isValid); } if (isMultipleDates(text)) { return text.split(props.delimiter).map(parseDate); } if (isRange(text)) { const [start, end] = text.split(props.rangeDelimiter).map(parseDate); return { start, end }; } return parseDate(text); }; return { parseDateInputValue, isValid }; }; export { useDateParser as u }; //# sourceMappingURL=input-text-parser.mjs.map