@pnp/spfx-controls-react
Version:
Reusable React controls for SharePoint Framework solutions
25 lines • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parseCalendarDate = exports.getDateKey = void 0;
var date_fns_tz_1 = require("date-fns-tz");
var ISO_DATE_ONLY_REGEXP = /^(\d{4})-(\d{2})-(\d{2})$/;
var ISO_TIME_ZONE_REGEXP = /(?:Z|[+-]\d{2}:?\d{2})$/i;
var padDatePart = function (datePart) { return datePart.toString().padStart(2, '0'); };
var getDateKey = function (date) {
return "".concat(date.getFullYear(), "-").concat(padDatePart(date.getMonth() + 1), "-").concat(padDatePart(date.getDate()));
};
exports.getDateKey = getDateKey;
var parseCalendarDate = function (dateString, timeZone) {
var dateOnlyMatch = ISO_DATE_ONLY_REGEXP.exec(dateString);
if (dateOnlyMatch) {
var year = dateOnlyMatch[1], month = dateOnlyMatch[2], day = dateOnlyMatch[3];
return new Date(Number(year), Number(month) - 1, Number(day));
}
var parsedDate = new Date(dateString);
if (Number.isNaN(parsedDate.getTime()) || !ISO_TIME_ZONE_REGEXP.test(dateString)) {
return parsedDate;
}
return (0, date_fns_tz_1.utcToZonedTime)(parsedDate, timeZone);
};
exports.parseCalendarDate = parseCalendarDate;
//# sourceMappingURL=dateUtils.js.map