UNPKG

@adaptabletools/adaptable-cjs

Version:

Powerful data-agnostic HTML5 AG Grid extension which provides advanced, cutting-edge functionality to meet all DataGrid requirements

67 lines (66 loc) 2.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GridFilterApiImpl = void 0; const tslib_1 = require("tslib"); const LayoutRedux = tslib_1.__importStar(require("../../Redux/ActionsReducers/LayoutRedux")); const windowFactory_1 = require("../../View/Components/Popups/WindowPopups/windowFactory"); const GridFilterInternalApi_1 = require("../Internal/GridFilterInternalApi"); const ApiBase_1 = require("./ApiBase"); const ModuleConstants = tslib_1.__importStar(require("../../Utilities/Constants/ModuleConstants")); class GridFilterApiImpl extends ApiBase_1.ApiBase { constructor(_adaptable) { super(_adaptable); this.internalApi = new GridFilterInternalApi_1.GridFilterInternalApi(_adaptable); } reApplyGridFilter() { const currentGridFilter = this.getCurrentGridFilter(); if (currentGridFilter?.Expression) { this.setGridFilterExpression(currentGridFilter.Expression); } } 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)); } setGridFilterExpressionUsingNamedQuery(namedQuery) { const expressionString = 'QUERY("' + namedQuery.Name + '")'; this.setGridFilterExpression(expressionString); } clearGridFilter() { this.dispatchAction(LayoutRedux.LayoutGridFilterClear()); } openUIEditorForGridFilter(expression) { const preparedQuery = expression ?? this.getCurrentGridFilterExpression(); this.getAdaptableInternalApi().showPopupWindow({ id: windowFactory_1.WINDOW_GRID_FILTER_EDITOR, title: ModuleConstants.GridFilterFriendlyName, icon: 'filter-list', factoryId: windowFactory_1.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()); } } } exports.GridFilterApiImpl = GridFilterApiImpl;