UNPKG

react-cm-ui

Version:
209 lines (168 loc) 6.67 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _lodash = _interopRequireDefault(require("lodash")); var _momentTimezone = _interopRequireDefault(require("moment-timezone")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } var dateUtils = { formatForCommentsWithTz: function formatForCommentsWithTz(data, userTimeZoneId) { var timeZoneId = userTimeZoneId || dateUtils.getDetectedTimeZone(); if (_lodash["default"].isNil(data)) { return null; } var dataMoment = null; if (_lodash["default"].isNumber(data)) { if (data === 0) { return null; } dataMoment = _momentTimezone["default"].unix(data).utc().tz(timeZoneId); } else { dataMoment = _momentTimezone["default"].utc(data, 'YYYY-MM-DDTHH:mm:ss').tz(timeZoneId); } var today = (0, _momentTimezone["default"])().startOf('day'); var dataDate = (0, _momentTimezone["default"])(dataMoment).startOf('day'); var dateString = null; switch (today.diff(dataDate, 'day')) { case 0: dateString = 'Today'; break; case 1: dateString = 'Yesterday'; break; default: dateString = dataMoment.format('L'); break; } return "".concat(dateString, " - ").concat(dataMoment.format('LT')); }, formatDaysFromToday: function formatDaysFromToday(data) { if (_lodash["default"].isNumber(data)) { var momentObj = dateUtils.unixToTz(data); var returnText = momentObj.fromNow().toLowerCase(); switch (returnText) { case 'in a day': returnText = 'Tomorrow'; break; case 'a day ago': returnText = 'Yesterday'; break; default: break; } return returnText; } return null; }, formatDate: function formatDate(data) { if (_lodash["default"].isNil(data)) { return null; } if (_lodash["default"].isNumber(data)) { return _momentTimezone["default"].unix(data).utc().format('L'); } return _momentTimezone["default"].utc(data, 'YYYY-MM-DDTHH:mm:ss').format('L'); }, formatDateWithSpecifiedTz: function formatDateWithSpecifiedTz(data, timeZoneId) { if (_lodash["default"].isNil(data)) { return null; } if (_lodash["default"].isNumber(data)) { return _momentTimezone["default"].unix(data).utc().tz(timeZoneId).format('MM/DD/YY'); // TODO/FIXME: Consider using L (although that has a 4 digit year, i.e. YYYY) } return (0, _momentTimezone["default"])(data).tz(timeZoneId).format('MM/DD/YY'); // TODO/FIXME: Consider using L (although that has a 4 digit year, i.e. YYYY) }, formatDateAndTime: function formatDateAndTime(data) { if (_lodash["default"].isNil(data)) { return null; } if (_lodash["default"].isNumber(data)) { return _momentTimezone["default"].unix(data).utc().format('L LT'); } return _momentTimezone["default"].utc(data, 'YYYY-MM-DDTHH:mm:ss').format('L LT'); }, formatDateAndTimeWithSpecifiedTz: function formatDateAndTimeWithSpecifiedTz(data, timeZoneId) { if (_lodash["default"].isNil(data)) { return null; } if (_lodash["default"].isNumber(data)) { return _momentTimezone["default"].unix(data).utc().tz(timeZoneId).format('L LT z'); } return _momentTimezone["default"].utc(data, 'YYYY-MM-DDTHH:mm:ss').tz(timeZoneId).format('L LT z'); }, formatDateAndTimeWithTz: function formatDateAndTimeWithTz(data, userTimeZoneId) { var timeZoneId = userTimeZoneId || dateUtils.getDetectedTimeZone(); return dateUtils.formatDateAndTimeWithSpecifiedTz(data, timeZoneId); }, formatTime: function formatTime(data) { if (_lodash["default"].isNil(data)) { return null; } if (_lodash["default"].isNumber(data)) { return _momentTimezone["default"].unix(data).utc().format('LT'); } return (0, _momentTimezone["default"])(data, 'HH:mm').format('LT'); }, formatDayOfWeek: function formatDayOfWeek(data) { if (_lodash["default"].isNumber(data)) { return _momentTimezone["default"].unix(data).utc().format('dddd'); } return null; }, toUnixTimestamp: function toUnixTimestamp(data) { if (_lodash["default"].isNil(data)) { return null; } return _momentTimezone["default"].utc(data, 'MM/DD/YYYY').unix(); }, getDetectedTimeZone: function getDetectedTimeZone() { return _momentTimezone["default"].tz.guess(); }, getAllowedDateFormats: function getAllowedDateFormats() { var formats = [_momentTimezone["default"].ISO_8601, 'MM/DD/YYYY', 'MM-DD-YYYY', 'MM.DD.YYYY', 'MM/DD/YY', 'MM-DD-YY', 'MM.DD.YY', 'M/D/YYYY', 'M-D-YYYY', 'M.D.YYYY', 'M/D/YY', 'M-D-YY', 'M.D.YY', 'MMM D YYYY', 'MMM DD YYYY', 'MMM D YY', 'MMM DD YY', 'D-MMM-YYYY', 'D MMM YYYY', 'D-MMM-YY', 'D MMM YY', 'D-M-YYYY', 'D/M/YYYY', 'D.M.YYYY', 'D-M-YY', 'D/M/YY', 'D.M.YY', 'DD/MM/YYYY', 'DD-MM-YYYY', 'DD.MM.YYYY', 'DD/MM/YY', 'DD-MM-YY', 'DD.MM.YY']; var localeData = _momentTimezone["default"].localeData(); var longDateFormat1 = localeData.longDateFormat('L'); if (_lodash["default"].indexOf(formats, longDateFormat1) < 0) { formats.unshift(longDateFormat1); } var longDateFormat2 = localeData.longDateFormat('LL'); if (_lodash["default"].indexOf(formats, longDateFormat2) < 0) { formats.unshift(longDateFormat2); } return formats; }, getLocalDateTime: function getLocalDateTime(date) { return _momentTimezone["default"].utc(date).local().format('MM/DD/YYYY h:mm a'); }, getWeekNum: function getWeekNum(date) { var fullDate = _momentTimezone["default"].unix(date).utc(); var currentDate = fullDate.clone(); var weeksToStart = 0; while (currentDate.month() === fullDate.month()) { currentDate.subtract(1, 'week'); weeksToStart += 1; } return weeksToStart; }, /** * Display a day relative to a given param. * @returns {String} Returns the formatted string. */ fromNow: function fromNow(date) { return dateUtils.unixToTz(date).calendar(null, { sameDay: '[Today] - MM/DD/YY', nextDay: '[Tomorrow] - MM/DD/YY', lastDay: '[Yesterday] - MM/DD/YY', lastWeek: 'MM/DD/YY', nextWeek: 'MM/DD/YY', sameElse: 'MM/DD/YY' }); }, unixToTz: function unixToTz(date, userTimeZoneId) { var timeZoneId = userTimeZoneId || dateUtils.getDetectedTimeZone(); return _momentTimezone["default"].unix(date).utc().tz(timeZoneId); } }; var _default = dateUtils; exports["default"] = _default;