@fremtind/jkl-datepicker-react
Version:
Jøkul react datepicker component
77 lines (76 loc) • 2.96 kB
JavaScript
;
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