react-cm-ui
Version:
React UI for Healthy Church
209 lines (168 loc) • 6.67 kB
JavaScript
"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;