UNPKG

@adaptabletools/adaptable

Version:

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

75 lines (74 loc) 3.03 kB
import * as ModuleConstants from '../../Utilities/Constants/ModuleConstants'; import * as CustomSortRedux from '../../Redux/ActionsReducers/CustomSortRedux'; import { ApiBase } from './ApiBase'; import { CustomSortInternalApi } from '../Internal/CustomSortInternalApi'; export class CustomSortApiImpl extends ApiBase { constructor(_adaptable) { super(_adaptable); this.internalApi = new CustomSortInternalApi(_adaptable); } getCustomSortState() { return this.getAdaptableState().CustomSort; } getCustomSorts(config) { return (this.handleLayoutAssociatedObjects(this.getCustomSortState().CustomSorts, 'CustomSort', config) ?? []); } getCustomSortById(id) { return this.getCustomSorts().find((customSort) => customSort.Uuid === id); } getActiveCustomSorts(config) { return this.getCustomSorts(config).filter((customSort) => !customSort.IsSuspended); } getSuspendedCustomSorts(config) { return this.getCustomSorts(config).filter((customSort) => customSort.IsSuspended); } getCustomSortByColumn(column) { return this.getCustomSorts().find((cs) => cs.ColumnId == column); } getCustomSortForColumn(columnId) { return this.getCustomSorts().find((cs) => cs.ColumnId == columnId); } addCustomSort(customSort) { this.addUidToAdaptableObject(customSort); this.dispatchAction(CustomSortRedux.CustomSortAdd(customSort)); return this.getCustomSortById(customSort.Uuid); } createCustomSort(columnId, values) { let customSort = { ColumnId: columnId, SortedValues: values }; return this.addCustomSort(customSort); } editCustomSort(columnId, values) { const previousCustomSort = this.getCustomSortForColumn(columnId); if (!previousCustomSort) { this.logWarn(`No custom sort defined for ${columnId}`); return; } const newCustomSort = { ...previousCustomSort, SortedValues: values, }; this.dispatchAction(CustomSortRedux.CustomSortEdit(newCustomSort)); return this.getCustomSortByColumn(columnId); } deleteCustomSort(column) { let customSort = this.getCustomSortForColumn(column); this.dispatchAction(CustomSortRedux.CustomSortDelete(customSort)); } suspendCustomSort(customSort) { this.dispatchAction(CustomSortRedux.CustomSortSuspend(customSort)); return this.getCustomSortById(customSort.Uuid); } unSuspendCustomSort(customSort) { this.dispatchAction(CustomSortRedux.CustomSortUnSuspend(customSort)); return this.getCustomSortById(customSort.Uuid); } suspendAllCustomSort() { this.dispatchAction(CustomSortRedux.CustomSortSuspendAll()); } unSuspendAllCustomSort() { this.dispatchAction(CustomSortRedux.CustomSortUnSuspendAll()); } openCustomSortSettingsPanel() { this.showModulePopup(ModuleConstants.CustomSortModuleId); } }