UNPKG

@mui/x-data-grid

Version:

The Community plan edition of the Data Grid components (MUI X).

60 lines 1.97 kB
import _extends from "@babel/runtime/helpers/esm/extends"; import { gridDateComparator } from "../hooks/features/sorting/gridSortingUtils.js"; import { getGridDateOperators } from "./gridDateOperators.js"; import { GRID_STRING_COL_DEF } from "./gridStringColDef.js"; import { renderEditDateCell } from "../components/cell/GridEditDateCell.js"; import { gridRowIdSelector } from "../hooks/core/gridPropsSelectors.js"; function throwIfNotDateObject({ value, columnType, rowId, field }) { if (!(value instanceof Date)) { throw new Error([`MUI X: \`${columnType}\` column type only accepts \`Date\` objects as values.`, 'Use `valueGetter` to transform the value into a `Date` object.', `Row ID: ${rowId}, field: "${field}".`].join('\n')); } } export const gridDateFormatter = (value, row, column, apiRef) => { if (!value) { return ''; } const rowId = gridRowIdSelector(apiRef, row); 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); 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) });