UNPKG

@renderlesskit/react

Version:

Collection of headless components/hooks that are accessible, composable, customizable from low level to build your own UI & Design System powered by Reakit

74 lines (61 loc) 1.81 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getSelectedDateFromValue = getSelectedDateFromValue; exports.getSelectedValueFromDate = getSelectedValueFromDate; exports.parseTime = parseTime; exports.stringifyTime = stringifyTime; var _utils = require("@chakra-ui/utils"); // As per https://html.spec.whatwg.org/multipage/common-microsyntaxes.html#times function parseTime(timeValue) { if (timeValue == null || !(0, _utils.isString)(timeValue)) return; var timeRegex = timeValue.match(/(\d\d)(:(\d\d)){1,2}/i); if (timeRegex == null) return; var time = timeValue.split(":"); var date = new Date(); if (+time[0] < 0 || +time[0] > 23 || +time[1] < 0 || +time[1] > 59) return; date.setHours(+time[0]); date.setMinutes(+time[1]); date.setSeconds(0); if (time[2]) { if (+time[2] < 0 || +time[2] > 60) return; date.setSeconds(+time[2]); } return date; } function stringifyTime(date) { return date.toString().slice(16, 24); } function getSelectedValueFromDate(date, type) { if (type === "minute") return date.getMinutes(); if (type === "meridian") return date.getHours() >= 12 ? 1 : 0; return date.getHours() % 12 || 12; } function getSelectedDateFromValue(value, date, type) { if (type === "minute") { return new Date(date.setMinutes(value)); } if (type === "meridian") { var hours = date.getHours() % 12; if (value === 1) { hours = hours + 12; } else { hours = hours % 12; } return new Date(date.setHours(hours)); } if (date.getHours() >= 12) { if (value !== 12) { value = value + 12; } } else { if (value !== 12) { value = value % 12; } else { value = 0; } } return new Date(date.setHours(value)); } //# sourceMappingURL=helpers.js.map