import { callable, dateFormatter, dateMonthFormatter, dateTimeFormatter, exchangeRateFormatter, numberFormatter, percentFormatter, rangeDateFormatter, rangeMonthFormatter, rangeYearFormatter, } from 'mixlea-utils-js'; import type { MlBaseFormColumn, MlBaseFormData } from '../types'; export default function safeGetCellFormatValue(column: MlBaseFormColumn, cellValue: any, formData: MlBaseFormData) { if (column.formatter) { const fotmatterType = callable(column.formatter, { cellValue, formData, }); if (fotmatterType === 'date') { return dateFormatter(cellValue); } else if (fotmatterType === 'dateMonth') { return dateMonthFormatter(cellValue); } else if (fotmatterType === 'dateTime') { return dateTimeFormatter(cellValue); } else if (fotmatterType === 'exchangeRate') { return exchangeRateFormatter(cellValue); } else if (fotmatterType === 'number') { return numberFormatter(cellValue); } else if (fotmatterType === 'integar') { return numberFormatter(cellValue, { allowDecimal: false }); } else if (fotmatterType === 'percent') { return percentFormatter(cellValue); } else if (fotmatterType === 'rangeDate') { return rangeDateFormatter(cellValue); } else if (fotmatterType === 'rangeMonth') { return rangeMonthFormatter(cellValue); } else if (fotmatterType === 'rangeYear') { return rangeYearFormatter(cellValue); } } return cellValue; }