@adaptabletools/adaptable
Version:
Powerful AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
22 lines (21 loc) • 1.46 kB
JavaScript
import { jsx as _jsx } from "react/jsx-runtime";
import * as React from 'react';
import { ColumnFilterComponent } from './ColumnFilter';
import { useAdaptableFilterWrapper } from './useAdaptableFilterWrapper';
import Panel from '../../../components/Panel';
export { isEmbeddedColumnFilterLocation } from './columnFilterLocation';
const ColumnFilterLocationContext = React.createContext(null);
export const ColumnFilterLocationProvider = ColumnFilterLocationContext.Provider;
export const useColumnFilterLocation = () => {
return React.useContext(ColumnFilterLocationContext) ?? 'columnMenu';
};
export const AdaptableColumnFilter = (props) => {
const { qlPredicate, qlPredicateDefs, columnFilter, handlePredicateChange } = useAdaptableFilterWrapper(props.columnId, 'FilterForm');
const filterContent = (_jsx(ColumnFilterLocationProvider, { value: props.location, children: _jsx(ColumnFilterComponent, { location: props.location, wrapperProps: props.wrapperProps, columnId: props.columnId, predicate: qlPredicate, predicateDefs: qlPredicateDefs, disabled: columnFilter?.IsSuspended, onPredicateChange: React.useCallback((predicate) => {
handlePredicateChange(predicate);
}, [handlePredicateChange]) }) }));
if (props.location === 'filtersToolPanel') {
return (_jsx(Panel, { className: "twa:p-1", bodyProps: { className: 'twa:p-0 twa:border-none' }, children: filterContent }));
}
return filterContent;
};