UNPKG

@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
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, {}) })] })); };