UNPKG

@etsoo/materialui

Version:

TypeScript Material-UI Implementation

50 lines (49 loc) 2.01 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GridDataFormat = GridDataFormat; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("@etsoo/react"); const shared_1 = require("@etsoo/shared"); const DateText_1 = require("./texts/DateText"); /** * Grid data format * @param data Input data * @param type Data type * @param renderProps Render props * @returns Result */ function GridDataFormat(data, type, renderProps) { // Null if (data == null) return undefined; // For date time // Conversion if necessary if (type === react_1.GridDataType.Date || type === react_1.GridDataType.DateTime) { const dateValue = data instanceof Date ? data : typeof data === "number" || typeof data === "string" ? new Date(data) : undefined; if (dateValue == null) return undefined; const option = type === react_1.GridDataType.DateTime ? "ds" : "d"; const nearDays = renderProps?.nearDays; if (nearDays != null) { return ((0, jsx_runtime_1.jsx)(DateText_1.DateText, { value: dateValue, locale: renderProps?.culture, timeZone: renderProps?.timeZone, options: option, nearDays: nearDays })); } return shared_1.DateUtils.format(dateValue, renderProps?.culture, option, renderProps?.timeZone); } // For numbers if (typeof data === "number") { if (type === react_1.GridDataType.Money || type === react_1.GridDataType.IntMoney) return shared_1.NumberUtils.formatMoney(data, renderProps?.currency, renderProps?.culture, type === react_1.GridDataType.IntMoney, renderProps?.numberFormatOptions); else return shared_1.NumberUtils.format(data, renderProps?.culture, renderProps?.numberFormatOptions); } // Array if (Array.isArray(data)) return data.join(", "); if (typeof data === "string") return data; return `${data}`; }