UNPKG

@adaptabletools/adaptable

Version:

Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

67 lines (66 loc) 2.73 kB
import { resolveDisplayFormat } from '../../AdaptableState/Common/AdaptableFormatPresets'; const headerMap = new Map(); export const getColumnHeaderLabel = (columnId, mainAdaptableInstance) => { if (!headerMap.has(columnId)) { headerMap.set(columnId, mainAdaptableInstance.api.columnApi.getColumnWithColumnId(columnId)?.friendlyName ?? columnId); } return headerMap.get(columnId); }; export const getChangeTriggerLabel = (changeInfo) => { return changeInfo.trigger === 'tick' ? 'Ticking' : 'User Edit'; }; export const isValidChangeHistoryLogEntry = (changeInfo) => { return !!changeInfo?.column?.columnId && changeInfo.changedAt != null; }; export const mapChangeHistoryRowData = (changeHistoryLog = {}, mainAdaptableInstance) => { return Object.entries(changeHistoryLog) .filter(([, changeInfo]) => isValidChangeHistoryLogEntry(changeInfo)) .map(([changeKey, changeInfo]) => ({ primaryKey: `${changeKey}::${changeInfo.changedAt}`, changeKey, changeTriggerLabel: getChangeTriggerLabel(changeInfo), changedColumnLabel: getColumnHeaderLabel(changeInfo.column.columnId, mainAdaptableInstance), changeInfo, })) .reverse(); }; export const getChangeHistoryRowChangeInfo = (rowData) => { if (!isValidChangeHistoryLogEntry(rowData?.changeInfo)) { return undefined; } return rowData.changeInfo; }; export const formatChangeHistoryCellValue = (value, column, rowNode, api) => { if (value === null || value === undefined) { return ''; } if (!column) { return String(value); } const formatColumns = api.formatColumnApi.internalApi.getFormatColumnsWithDisplayFormatForColumn(column, { target: 'cell' }); const formatColumn = formatColumns[0]; if (!formatColumn) { return String(value); } const resolvedFormat = resolveDisplayFormat(formatColumn.DisplayFormat); if (!resolvedFormat) { return String(value); } const { Formatter, Options } = resolvedFormat; const nodeForFormatter = (rowNode ?? null); try { switch (Formatter) { case 'DateFormatter': return api.formatColumnApi.internalApi.getDateFormattedValue(value, nodeForFormatter, column, Options); case 'NumberFormatter': return String(api.formatColumnApi.internalApi.getNumberFormattedValue(value, nodeForFormatter, column, Options)); case 'StringFormatter': return api.formatColumnApi.internalApi.getStringFormattedValue(value, nodeForFormatter, column, Options); default: return String(value); } } catch { return String(value); } };