@skbkontur/db-viewer-ui
Version:
Database Viewer with custom configuration
49 lines • 2.31 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.padTime = exports.buildDateTime = exports.getTimeZoneString = exports.convertStringToDate = exports.convertDateToStringWithTimezone = void 0;
const edi_ui_1 = require("@skbkontur/edi-ui");
const convertDateToStringWithTimezone = (date, timeZone) => date ? edi_ui_1.DateUtils.formatDate(date, "dd.MM.yyyy", edi_ui_1.TimeUtils.getTimeZoneOffsetOrDefault(timeZone)) : "";
exports.convertDateToStringWithTimezone = convertDateToStringWithTimezone;
const convertStringToDate = (newStringifiedDate, defaultTime, timeZone) => {
const dateParsed = edi_ui_1.DateUtils.parseDate(newStringifiedDate);
const ISODate = edi_ui_1.DateUtils.formatDate(dateParsed, "yyyy-MM-dd");
const time = defaultTime || "00:00";
const timeZoneOffset = edi_ui_1.TimeUtils.getTimeZoneOffsetOrDefault(timeZone);
return new Date(`${ISODate}T${time}${edi_ui_1.TimeUtils.timeZoneOffsetToString(timeZoneOffset)}`);
};
exports.convertStringToDate = convertStringToDate;
const getTimeZoneString = (date) => {
const timezoneRegex = /.*T.*(Z|[+-].*)/i;
const matches = date.match(timezoneRegex);
if (!matches || matches.length < 2) {
return null;
}
return matches[1];
};
exports.getTimeZoneString = getTimeZoneString;
const buildDateTime = (date, time, offset, defaultTime) => {
if (!date) {
return null;
}
const datePart = edi_ui_1.DateUtils.formatDate(date, "yyyy-MM-dd", 0);
return `${datePart}T${time !== null && time !== void 0 ? time : defaultTime}${offset !== null && offset !== void 0 ? offset : ""}`;
};
exports.buildDateTime = buildDateTime;
const padTime = (input, useSeconds) => {
const cleaned = input === null || input === void 0 ? void 0 : input.replace(/[:.]+$/, "");
if (!cleaned) {
return "";
}
const [h = "", m = "", rest = ""] = cleaned.split(":");
const [s = "", ms = ""] = rest.split(".");
const hours = h.padStart(2, "0");
const minutes = m.padEnd(2, "0");
const seconds = s.padEnd(2, "0");
const milliseconds = ms.padEnd(3, "0");
if (!useSeconds) {
return `${hours}:${minutes}`;
}
return `${hours}:${minutes}:${seconds}.${milliseconds}`;
};
exports.padTime = padTime;
//# sourceMappingURL=helpers.js.map