71 lines
2.7 KiB
JavaScript
71 lines
2.7 KiB
JavaScript
import _toConsumableArray from "@babel/runtime/helpers/esm/toConsumableArray";
|
|
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
|
|
var _excluded = ["views", "format"];
|
|
import { resolveTimeFormat, isTimeView, isInternalTimeView } from './time-utils';
|
|
import { resolveDateFormat } from './date-utils';
|
|
export var resolveDateTimeFormat = function resolveDateTimeFormat(utils, _ref) {
|
|
var views = _ref.views,
|
|
format = _ref.format,
|
|
other = _objectWithoutProperties(_ref, _excluded);
|
|
if (format) {
|
|
return format;
|
|
}
|
|
var dateViews = [];
|
|
var timeViews = [];
|
|
views.forEach(function (view) {
|
|
if (isTimeView(view)) {
|
|
timeViews.push(view);
|
|
} else {
|
|
dateViews.push(view);
|
|
}
|
|
});
|
|
if (timeViews.length === 0) {
|
|
return resolveDateFormat(utils, _extends({
|
|
views: dateViews
|
|
}, other), false);
|
|
}
|
|
if (dateViews.length === 0) {
|
|
return resolveTimeFormat(utils, _extends({
|
|
views: timeViews
|
|
}, other));
|
|
}
|
|
var timeFormat = resolveTimeFormat(utils, _extends({
|
|
views: timeViews
|
|
}, other));
|
|
var dateFormat = resolveDateFormat(utils, _extends({
|
|
views: dateViews
|
|
}, other), false);
|
|
return "".concat(dateFormat, " ").concat(timeFormat);
|
|
};
|
|
var resolveViews = function resolveViews(ampm, views, shouldUseSingleColumn) {
|
|
if (shouldUseSingleColumn) {
|
|
return views.filter(function (view) {
|
|
return !isInternalTimeView(view) || view === 'hours';
|
|
});
|
|
}
|
|
return ampm ? [].concat(_toConsumableArray(views), ['meridiem']) : views;
|
|
};
|
|
var resolveShouldRenderTimeInASingleColumn = function resolveShouldRenderTimeInASingleColumn(timeSteps, threshold) {
|
|
var _timeSteps$hours, _timeSteps$minutes;
|
|
return 24 * 60 / (((_timeSteps$hours = timeSteps.hours) != null ? _timeSteps$hours : 1) * ((_timeSteps$minutes = timeSteps.minutes) != null ? _timeSteps$minutes : 5)) <= threshold;
|
|
};
|
|
export function resolveTimeViewsResponse(_ref2) {
|
|
var inThreshold = _ref2.thresholdToRenderTimeInASingleColumn,
|
|
ampm = _ref2.ampm,
|
|
inTimeSteps = _ref2.timeSteps,
|
|
views = _ref2.views;
|
|
var thresholdToRenderTimeInASingleColumn = inThreshold != null ? inThreshold : 24;
|
|
var timeSteps = _extends({
|
|
hours: 1,
|
|
minutes: 5,
|
|
seconds: 5
|
|
}, inTimeSteps);
|
|
var shouldRenderTimeInASingleColumn = resolveShouldRenderTimeInASingleColumn(timeSteps, thresholdToRenderTimeInASingleColumn);
|
|
return {
|
|
thresholdToRenderTimeInASingleColumn: thresholdToRenderTimeInASingleColumn,
|
|
timeSteps: timeSteps,
|
|
shouldRenderTimeInASingleColumn: shouldRenderTimeInASingleColumn,
|
|
views: resolveViews(ampm, views, shouldRenderTimeInASingleColumn)
|
|
};
|
|
} |