@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
20 lines (19 loc) • 1.32 kB
JavaScript
import { mapAdaptablePredicateDefToQlPredicateDef, mapColumnFilterToQlPredicate, qlPredicateToString, } from '../../..//View/Components/ColumnFilter/utils';
import { mapColumnDataTypeToExpressionFunctionType } from '../../../Utilities/adaptableQlUtils';
export const getFilterPreview = (columnFilter, api) => {
const columnId = columnFilter.ColumnId;
const column = api.columnApi.getColumnWithColumnId(columnId);
const columnFilterOptions = api.optionsApi.getFilterOptions().columnFilterOptions;
const predicateDefs = api.filterApi.columnFilterApi.getFilterPredicateDefsForColumn(column);
const columnType = api.columnApi.getColumnDataTypeForColumnId(columnId);
const qlDataType = mapColumnDataTypeToExpressionFunctionType(columnType);
const qlPredicateDefs = predicateDefs.map((pd) => mapAdaptablePredicateDefToQlPredicateDef(pd, qlDataType));
const qlPredicate = mapColumnFilterToQlPredicate(columnFilter, column, qlPredicateDefs, columnFilterOptions, 'FilterForm', api);
return `${column.friendlyName} ${qlPredicateToString(qlPredicate, qlPredicateDefs)}`;
};
export const getLayoutFilterViewItems = (layout, api) => {
return {
name: 'Column Filters',
values: (layout.ColumnFilters ?? []).map((columnFilter) => getFilterPreview(columnFilter, api)),
};
};