UNPKG

@mui/x-date-pickers

Version:

The community edition of the Date and Time Picker components (MUI X).

68 lines 2.32 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/esm/objectWithoutPropertiesLoose"; const _excluded = ["views", "format"]; import { resolveTimeFormat, isTimeView, isInternalTimeView } from "./time-utils.js"; import { isDatePickerView, resolveDateFormat } from "./date-utils.js"; export const resolveDateTimeFormat = (utils, _ref, ignoreDateResolving) => { let { views, format } = _ref, other = _objectWithoutPropertiesLoose(_ref, _excluded); if (format) { return format; } const dateViews = []; const timeViews = []; views.forEach(view => { if (isTimeView(view)) { timeViews.push(view); } else if (isDatePickerView(view)) { 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)); } const timeFormat = resolveTimeFormat(utils, _extends({ views: timeViews }, other)); const dateFormat = ignoreDateResolving ? utils.formats.keyboardDate : resolveDateFormat(utils, _extends({ views: dateViews }, other), false); return `${dateFormat} ${timeFormat}`; }; const resolveViews = (ampm, views, shouldUseSingleColumn) => { if (shouldUseSingleColumn) { return views.filter(view => !isInternalTimeView(view) || view === 'hours'); } return ampm ? [...views, 'meridiem'] : views; }; const resolveShouldRenderTimeInASingleColumn = (timeSteps, threshold) => 24 * 60 / ((timeSteps.hours ?? 1) * (timeSteps.minutes ?? 5)) <= threshold; export function resolveTimeViewsResponse({ thresholdToRenderTimeInASingleColumn: inThreshold, ampm, timeSteps: inTimeSteps, views }) { const thresholdToRenderTimeInASingleColumn = inThreshold ?? 24; const timeSteps = _extends({ hours: 1, minutes: 5, seconds: 5 }, inTimeSteps); const shouldRenderTimeInASingleColumn = resolveShouldRenderTimeInASingleColumn(timeSteps, thresholdToRenderTimeInASingleColumn); return { thresholdToRenderTimeInASingleColumn, timeSteps, shouldRenderTimeInASingleColumn, views: resolveViews(ampm, views, shouldRenderTimeInASingleColumn) }; }