@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
29 lines (28 loc) • 1.69 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import { Box, Flex } from '../../../../../components/Flex';
import { Tag } from '../../../../../components/Tag';
import { useAdaptable } from '../../../../AdaptableContext';
import { getGradientPreviewCellStyle, getGradientPreviewSampleValues, hasGradientRangesConfigured, } from '../../../../../Utilities/Helpers/StyledColumns/GradientStyleHelper';
const formatPreviewValue = (value) => {
if (Number.isInteger(value)) {
return value.toLocaleString();
}
return value.toLocaleString(undefined, { maximumFractionDigits: 2 });
};
export const StyledColumnGradientPreview = ({ data, api: apiProp }) => {
const adaptable = useAdaptable();
const api = apiProp ?? adaptable.api;
const gs = data.GradientStyle;
if (!gs) {
return _jsx(Tag, { children: "No Gradient Style" });
}
if (!hasGradientRangesConfigured(gs)) {
return _jsx(Tag, { children: "Define ranges before previewing" });
}
const sampleValues = getGradientPreviewSampleValues(data, api);
if (!sampleValues.length) {
return _jsx(Tag, { children: "No preview available" });
}
const rowNode = api.gridApi?.getRowNodeForIndex(0) ?? null;
return (_jsx(Flex, { alignItems: "stretch", className: "twa:flex-wrap twa:gap-2", children: sampleValues.map((value) => (_jsx(Box, { className: "ab-GradientPreviewCell twa:px-2 twa:py-1 twa:min-w-[56px] twa:text-2 twa:text-center twa:rounded-standard twa:border twa:border-[color-mix(in_srgb,var(--ab-color-foreground)_15%,transparent)]", style: getGradientPreviewCellStyle(value, data, api, rowNode), children: formatPreviewValue(value) }, value))) }));
};