UNPKG

@fremtind/jkl-datepicker-react

Version:
57 lines (56 loc) 1.98 kB
const dayMonthYearRegex = /^(\d\d?)[\W](\d\d?)[\W](\d{4}|\d{2})$/; const yearMonthDayRegex = /^(\d{4}|\d{2})[\W](\d\d?)[\W](\d\d?)$/; function formatInput(date) { const day = "".concat(date.getDate()).padStart(2, "0"); const month = "".concat(date.getMonth() + 1).padStart(2, "0"); return "".concat(day, ".").concat(month, ".").concat(date.getFullYear()); } const getDateSegmentsFromString = (input) => { const dayMonthYear = dayMonthYearRegex.exec(input); if (dayMonthYear) { return dayMonthYear.slice(1, 4); } const yearMonthDay = yearMonthDayRegex.exec(input); if (!yearMonthDay) { return void 0; } const slicedDateSegments = yearMonthDay.slice(1, 4); slicedDateSegments.reverse(); return slicedDateSegments; }; function parseDateString(dateString) { if (!dateString) { return void 0; } const inputDateSegments = getDateSegmentsFromString(dateString); if (!inputDateSegments) { return void 0; } const currentTwoDigitYear = parseInt( (/* @__PURE__ */ new Date()).toLocaleString("no-NB", { year: "2-digit" }) ); const parseTwoDigitYear = (year2) => year2 > currentTwoDigitYear ? year2 + 1900 : year2 + 2e3; const day = parseInt(inputDateSegments[0], 10); const month = parseInt(inputDateSegments[1], 10) - 1; const yearIn = parseInt(inputDateSegments[2], 10); const year = yearIn > 99 ? yearIn : parseTwoDigitYear(yearIn); const generatedDate = new Date(year, month, day, 0, 0, 0); return generatedDate.getMonth() === month && generatedDate.getFullYear() === year ? generatedDate : void 0; } function isBlurTargetOutside(e) { if (!e.relatedTarget) { return true; } const targetRoot = e.target.closest(".jkl-datepicker__input-wrapper"); const relatedTargetRoot = e.relatedTarget.closest( ".jkl-datepicker__input-wrapper" ); return relatedTargetRoot !== targetRoot; } export { dayMonthYearRegex, formatInput, isBlurTargetOutside, parseDateString }; //# sourceMappingURL=utils.js.map