@mui/x-data-grid
Version:
The Community plan edition of the MUI X Data Grid components.
68 lines • 2.44 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
import _formatErrorMessage from "@mui/x-internals/formatErrorMessage";
import { gridDateComparator } from "../hooks/features/sorting/gridSortingUtils.mjs";
import { getGridDateOperators } from "./gridDateOperators.mjs";
import { GRID_STRING_COL_DEF } from "./gridStringColDef.mjs";
import { renderEditDateCell } from "../components/cell/GridEditDateCell.mjs";
import { gridRowIdSelector } from "../hooks/core/gridPropsSelectors.mjs";
import { isAutogeneratedRow } from "../hooks/features/rows/gridRowsUtils.mjs";
function throwIfNotDateObject({
value,
columnType,
rowId,
field
}) {
if (!(value instanceof Date)) {
throw new Error(process.env.NODE_ENV !== "production" ? `MUI X Data Grid: The "${columnType}" column type only accepts Date objects as values. ` + `Received value of type "${typeof value}" for row ID "${rowId}", field "${field}". ` + 'Use valueGetter to transform the value into a Date object.' : _formatErrorMessage(54, columnType, typeof value, rowId, field));
}
}
export const gridDateFormatter = (value, row, column, apiRef) => {
if (!value) {
return '';
}
const rowId = gridRowIdSelector(apiRef, row);
if (isAutogeneratedRow(row) && !(value instanceof Date)) {
return value;
}
throwIfNotDateObject({
value,
columnType: 'date',
rowId,
field: column.field
});
return value.toLocaleDateString();
};
export const gridDateTimeFormatter = (value, row, column, apiRef) => {
if (!value) {
return '';
}
const rowId = gridRowIdSelector(apiRef, row);
if (isAutogeneratedRow(row) && !(value instanceof Date)) {
return value;
}
throwIfNotDateObject({
value,
columnType: 'dateTime',
rowId,
field: column.field
});
return value.toLocaleString();
};
export const GRID_DATE_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
type: 'date',
sortComparator: gridDateComparator,
valueFormatter: gridDateFormatter,
filterOperators: getGridDateOperators(),
renderEditCell: renderEditDateCell,
// @ts-ignore
pastedValueParser: value => new Date(value)
});
export const GRID_DATETIME_COL_DEF = _extends({}, GRID_STRING_COL_DEF, {
type: 'dateTime',
sortComparator: gridDateComparator,
valueFormatter: gridDateTimeFormatter,
filterOperators: getGridDateOperators(true),
renderEditCell: renderEditDateCell,
// @ts-ignore
pastedValueParser: value => new Date(value)
});