UNPKG

@mui/x-data-grid

Version:

The Community plan edition of the Data Grid components (MUI X).

79 lines 3.81 kB
import { GridRowTreeCreationParams, GridRowTreeCreationValue, GridRowsState } from "../../features/rows/gridRowsInterfaces.js"; import { GridFilteringMethodParams, GridFilteringMethodValue, GridFilterState, GridVisibleRowsLookupState } from "../../features/filter/gridFilterState.js"; import { GridSortingMethodParams, GridSortingMethodValue } from "../../features/sorting/gridSortingState.js"; import { GridGetRowsParams, GridGetRowsResponse } from "../../../models/gridDataSource.js"; export type GridStrategyProcessorName = keyof GridStrategyProcessingLookup; export declare enum GridStrategyGroup { DataSource = "dataSource", RowTree = "rowTree", } export type GridStrategyGroupValue = `${GridStrategyGroup}`; export interface GridStrategyProcessingLookup { dataSourceRowsUpdate: { group: GridStrategyGroup.DataSource; params: { response: GridGetRowsResponse; fetchParams: GridGetRowsParams; } | { error: Error; fetchParams: GridGetRowsParams; }; value: void; }; rowTreeCreation: { group: GridStrategyGroup.RowTree; params: GridRowTreeCreationParams; value: GridRowTreeCreationValue; }; filtering: { group: GridStrategyGroup.RowTree; params: GridFilteringMethodParams; value: GridFilteringMethodValue; }; sorting: { group: GridStrategyGroup.RowTree; params: GridSortingMethodParams; value: GridSortingMethodValue; }; visibleRowsLookupCreation: { group: GridStrategyGroup.RowTree; params: { tree: GridRowsState['tree']; filteredRowsLookup: GridFilterState['filteredRowsLookup']; }; value: GridVisibleRowsLookupState; }; } export type GridStrategyProcessor<P extends GridStrategyProcessorName> = (params: GridStrategyProcessingLookup[P]['params']) => GridStrategyProcessingLookup[P]['value']; export interface GridStrategyProcessingApi { /** * Registers a strategy processor. * If the strategy is active, it emits an event to notify the agents to re-apply the processor. * @template P * @param {string} strategyName The name of the strategy on which this processor should be applied. * @param {GridStrategyProcessorName} processorName The name of the processor. * @param {GridStrategyProcessor<P>} processor The processor to register. * @returns {() => void} A function to unregister the processor. */ registerStrategyProcessor: <P extends GridStrategyProcessorName>(strategyName: string, processorName: P, processor: GridStrategyProcessor<P>) => () => void; /** * Set a callback to know if a strategy is available. * @param {GridStrategyGroupValue} strategyGroup The group for which we set strategy availability. * @param {string} strategyName The name of the strategy. * @param {boolean} callback A callback to know if this strategy is available. */ setStrategyAvailability: (strategyGroup: GridStrategyGroupValue, strategyName: string, callback: () => boolean) => void; /** * Returns the name of the active strategy of a given strategy group * @param {GridStrategyGroupValue} strategyGroup The group from which we want the active strategy. * @returns {string} The name of the active strategy. */ getActiveStrategy: (strategyGroup: GridStrategyGroupValue) => string; /** * Run the processor registered for the active strategy. * @param {GridStrategyProcessorName} processorName The name of the processor to run. * @param {GridStrategyProcessingLookup[P]['params']} params Additional params to pass to the processor. * @returns {GridStrategyProcessingLookup[P]['value']} The value returned by the processor. */ applyStrategyProcessor: <P extends GridStrategyProcessorName>(processorName: P, params: GridStrategyProcessingLookup[P]['params']) => GridStrategyProcessingLookup[P]['value']; }