UNPKG

@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
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()); } } }