@adaptabletools/adaptable
Version:
Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements
52 lines (51 loc) • 2 kB
JavaScript
import * as LayoutRedux from '../../Redux/ActionsReducers/LayoutRedux';
import { WINDOW_GRID_FILTER_EDITOR } from '../../View/Components/Popups/WindowPopups/windowFactory';
import { GridFilterInternalApi } from '../Internal/GridFilterInternalApi';
import { ApiBase } from './ApiBase';
import * as ModuleConstants from '../../Utilities/Constants/ModuleConstants';
export class GridFilterApiImpl extends ApiBase {
constructor(_adaptable) {
super(_adaptable);
this.internalApi = new GridFilterInternalApi(_adaptable);
}
getCurrentGridFilter() {
return this.getLayoutApi().getCurrentLayout()?.GridFilter;
}
getCurrentGridFilterExpression() {
const gridFilter = this.getCurrentGridFilter();
if (!gridFilter || gridFilter.IsSuspended) {
return '';
}
return gridFilter.Expression;
}
setGridFilterExpression(filter) {
this.dispatchAction(LayoutRedux.LayoutGridFilterSet(filter));
}
clearGridFilter() {
this.dispatchAction(LayoutRedux.LayoutGridFilterClear());
}
openUIEditorForGridFilter(expression) {
const preparedQuery = expression ?? this.getCurrentGridFilterExpression();
this.getAdaptableInternalApi().showPopupWindow({
id: WINDOW_GRID_FILTER_EDITOR,
title: ModuleConstants.GridFilterFriendlyName,
icon: 'filter-list',
factoryId: WINDOW_GRID_FILTER_EDITOR,
popupProps: {
value: preparedQuery,
},
});
}
suspendGridFilter() {
const gridFilter = this.getCurrentGridFilter();
if (gridFilter && !gridFilter.IsSuspended) {
this.dispatchAction(LayoutRedux.LayoutGridFilterSuspend());
}
}
unSuspendGridFilter() {
const gridFilter = this.getCurrentGridFilter();
if (gridFilter && gridFilter.IsSuspended) {
this.dispatchAction(LayoutRedux.LayoutGridFilterUnSuspend());
}
}
}