UNPKG

@mui/x-data-grid

Version:

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

48 lines 3.96 kB
import type { RefObject } from '@mui/x-internals/types'; import { GridLogicOperator } from "../../../models/index.js"; import type { GridColDef, GridFilterItem, GridFilterModel, GridRowModel } from "../../../models/index.js"; import type { GridPrivateApiCommunity } from "../../../models/api/gridApiCommunity.js"; import type { GridStateCommunity } from "../../../models/gridStateCommunity.js"; import type { GridAggregatedFilterItemApplier, GridFilterItemResult, GridQuickFilterValueResult } from "./gridFilterState.js"; import type { GridColumnLookup } from "../columns/index.js"; /** * Pure helpers computing a new filter model from an existing one. * Shared by the imperative `apiRef` methods (`useGridFilter`) and the controlled * filter panel (`GridFilterPanelBase`) so both paths produce identical models. * Each helper returns the same model reference when nothing changes, so callers * relying on referential equality can skip no-op updates. */ export declare const upsertFilterItemInModel: (model: GridFilterModel, item: GridFilterItem) => GridFilterModel; export declare const upsertFilterItemsInModel: (model: GridFilterModel, itemsToUpsert: GridFilterItem[]) => GridFilterModel; export declare const deleteFilterItemFromModel: (model: GridFilterModel, itemToDelete: GridFilterItem) => GridFilterModel; export declare const setFilterLogicOperatorInModel: (model: GridFilterModel, logicOperator: GridLogicOperator) => GridFilterModel; /** * Whether a filter item carries everything its operator needs to be applied. * Operators declaring `requiresFilterValue: false` (`isEmpty`, `isNotEmpty`) stay complete * without a value, see https://github.com/mui/mui-x/issues/5402 */ export declare const isFilterItemComplete: (item: GridFilterItem, column: GridColDef | undefined) => boolean; /** * Drops the filter items that cannot be applied, so incomplete items never reach a consumer * that would treat them as a real constraint (`dataSource` sending them to a server, for one). * Returns the same model reference when every item is complete. */ export declare const removeIncompleteFilterItems: (model: GridFilterModel, columnsLookup: GridColumnLookup) => GridFilterModel; /** * Adds default values to the optional fields of a filter items. * @param {GridFilterItem} item The raw filter item. * @param {RefObject<GridPrivateApiCommunity>} apiRef The API of the grid. * @return {GridFilterItem} The clean filter item with an uniq ID and an always-defined operator. * TODO: Make the typing reflect the different between GridFilterInputItem and GridFilterItem. */ export declare const cleanFilterItem: (item: GridFilterItem, apiRef: RefObject<GridPrivateApiCommunity>) => GridFilterItem; export declare const sanitizeFilterModel: (model: GridFilterModel, disableMultipleColumnsFiltering: boolean, apiRef: RefObject<GridPrivateApiCommunity>) => GridFilterModel; export declare const mergeStateWithFilterModel: (filterModel: GridFilterModel, disableMultipleColumnsFiltering: boolean, apiRef: RefObject<GridPrivateApiCommunity>) => (filteringState: GridStateCommunity['filter']) => GridStateCommunity['filter']; export declare const removeDiacritics: (value: unknown) => unknown; export declare const shouldQuickFilterExcludeHiddenColumns: (filterModel: GridFilterModel) => boolean; export declare const buildAggregatedFilterApplier: (filterModel: GridFilterModel, filterValueGetter: (row: GridRowModel, column: GridColDef) => any, apiRef: RefObject<GridPrivateApiCommunity>, disableEval: boolean) => GridAggregatedFilterItemApplier; type FilterCache = { cleanedFilterItems?: GridFilterItem[]; }; export declare const passFilterLogic: (allFilterItemResults: (null | GridFilterItemResult)[], allQuickFilterResults: (null | GridQuickFilterValueResult)[], filterModel: GridFilterModel, filterValueGetter: (row: GridRowModel, column: GridColDef) => any, apiRef: RefObject<GridPrivateApiCommunity>, cache: FilterCache) => boolean; export {};