UNPKG

@fremtind/jkl-datepicker-react

Version:
77 lines (76 loc) 2.96 kB
"use strict"; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var utils_exports = {}; __export(utils_exports, { dayMonthYearRegex: () => dayMonthYearRegex, formatInput: () => formatInput, isBlurTargetOutside: () => isBlurTargetOutside, parseDateString: () => parseDateString }); module.exports = __toCommonJS(utils_exports); 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; } //# sourceMappingURL=utils.js.map