/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { CompositeFilterDescriptor } from '@progress/kendo-data-query'; import { GridColumnMenuFilterUIProps } from '../interfaces/GridColumnMenuFilterUIProps'; import { GridColumnMenuFilterBaseProps } from '../interfaces/GridColumnMenuFilterBaseProps'; import { ComponentType } from 'react'; import * as React from 'react'; /** * @hidden */ export declare const rootFilterOrDefault: (rootFilter: CompositeFilterDescriptor | undefined) => CompositeFilterDescriptor; /** * @hidden */ export declare const filterGroupByField: (field: string, filter: CompositeFilterDescriptor | undefined) => CompositeFilterDescriptor | null; /** * Can be used to check if filtering is applied to a specific field ([see example](https://www.telerik.com/kendo-react-ui/components/grid/columns/column-menu#toc-styling-the-column-menu-icon)). Useful for creating active filter indicators. */ export declare const isColumnMenuFilterActive: (field: string, filter?: CompositeFilterDescriptor) => boolean; /** * The props of the GridColumnMenuFilter component. */ export interface GridColumnMenuFilterProps extends GridColumnMenuFilterBaseProps { /** * Controls the expand state of the filter component. */ expanded?: boolean; /** * Triggered on each subsequent expand state of the filter component. */ onExpandChange?: (nextExpandState: boolean) => void; /** * If set to `false`, the second filter operator and the input will be hidden. */ hideSecondFilter?: boolean; /** * Specifies a React element that will be cloned and rendered inside the UI of the column-menu filter component * ([see example](https://www.telerik.com/kendo-react-ui/components/grid/columns/column-menu#toc-customizing-the-filter-component)). */ filterUI?: ComponentType; /** * The child elements to be rendered inside the filter component. */ children?: React.ReactNode; /** * If set to `true`, filter expand button will not be rendered and filter menu will be expanded. */ alwaysExpand?: boolean; } /** * @example * ```jsx-no-run * const TextColumnMenu = (props) => { * return ( *
* * *
* ); * }; * * const App = () => { * const [state, setState] = React.useState( * createAppState({ * take: 10, * skip: 0, * }) * ); * * function createAppState(dataState) { * return { * result: process(products.slice(0), dataState), * dataState: dataState, * }; * } * * const dataStateChange = (event) => { * setState(createAppState(event.dataState)); * }; * * return ( * * * * * ); * }; * ``` */ export declare const GridColumnMenuFilter: (props: GridColumnMenuFilterProps) => React.JSX.Element;