@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
66 lines (65 loc) • 3.56 kB
JavaScript
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
import { resolveDisplayFormat } from '../../../AdaptableState/Common/AdaptableFormatPresets';
import { DEFAULT_DOUBLE_DISPLAY_VALUE, DEFAULT_STRING_DISPLAY_VALUE, } from '../../../Utilities/Constants/GeneralConstants';
import FormatHelper from '../../../Utilities/Helpers/DisplayFormatHelper';
import { convertAdaptableStyleToCSS } from '../../../Utilities/Helpers/StyleHelper';
import { Card } from '../../../components/Card';
import { Box } from '../../../components/Flex';
import { useOnePageAdaptableWizardContext } from '../../Wizard/OnePageAdaptableWizard';
import { getFormatDisplayTypeForScope } from './FormatColumnFormatWizardSection';
const toFormatColumnPreviewStyle = (formatColumn) => {
const style = formatColumn.Style ?? {};
return {
...convertAdaptableStyleToCSS(style),
borderWidth: style.BorderColor ? 2 : 0,
borderStyle: 'solid',
textAlign: style.Alignment ? style.Alignment.toLowerCase() : undefined,
};
};
export const getFormatColumnPreviewDateSampleText = () => new Date().toLocaleDateString();
export const getFormatColumnStylePreviewText = (formatColumn, api) => {
const formatType = getFormatDisplayTypeForScope(formatColumn.Scope, api);
if (formatType === 'number') {
return String(DEFAULT_DOUBLE_DISPLAY_VALUE);
}
if (formatType === 'date') {
return getFormatColumnPreviewDateSampleText();
}
return DEFAULT_STRING_DISPLAY_VALUE;
};
export const getFormatColumnPreviewSampleValue = (formatColumn, api) => {
const formatType = getFormatDisplayTypeForScope(formatColumn.Scope, api);
if (formatType === 'number') {
return DEFAULT_DOUBLE_DISPLAY_VALUE;
}
if (formatType === 'date') {
return getFormatColumnPreviewDateSampleText();
}
return DEFAULT_STRING_DISPLAY_VALUE;
};
export const getFormatColumnPreviewText = (formatColumn, api) => {
const sample = getFormatColumnPreviewSampleValue(formatColumn, api);
const resolved = resolveDisplayFormat(formatColumn.DisplayFormat);
if (!resolved) {
return String(sample);
}
if (resolved.Formatter === 'NumberFormatter' && typeof sample === 'number') {
return FormatHelper.NumberFormatter(sample, resolved.Options) ?? String(sample);
}
if (resolved.Formatter === 'DateFormatter') {
return FormatHelper.DateFormatter(new Date(), resolved.Options) ?? String(sample);
}
if (resolved.Formatter === 'StringFormatter' && typeof sample === 'string') {
return FormatHelper.StringFormatter(sample, resolved.Options) ?? sample;
}
return String(sample);
};
export const FormatColumnPreviewContent = ({ formatColumn, api }) => (_jsx(Box, { className: "ab-FormatPreview twa:p-2 twa:inline-block", style: toFormatColumnPreviewStyle(formatColumn), children: getFormatColumnPreviewText(formatColumn, api) }));
export const renderFormatColumnPreviewSummary = (formatColumn, api) => _jsx(FormatColumnPreviewContent, { formatColumn: formatColumn, api: api });
export const FormatColumnPreview = () => {
const { data, api } = useOnePageAdaptableWizardContext();
return _jsx(FormatColumnPreviewContent, { formatColumn: data, api: api });
};
export const FormatColumnPreviewSummaryCard = () => {
return (_jsxs(Card, { shadow: false, children: [_jsx(Card.Title, { children: _jsx(Box, { className: "twa:font-medium", children: "Preview" }) }), _jsx(Card.Body, { className: "twa:p-1", children: _jsx(FormatColumnPreview, {}) })] }));
};