/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { SortDescriptor, CompositeFilterDescriptor } from '@progress/kendo-data-query'; import * as React from 'react'; /** * Defines the props of the ColumnMenu component. */ export interface ColumnMenuProps { /** * Sets the `SortDescriptor[]` applied to the data. */ sort?: SortDescriptor[]; /** * Fires when sorting changes. Receives the browser event, the new `SortDescriptor[]`, and the column `field`. */ onSortChange?: (event: React.SyntheticEvent, sort: SortDescriptor[], field: string) => void; /** * Sets the `CompositeFilterDescriptor[]` applied to the data. */ filter?: CompositeFilterDescriptor[]; /** * Fires when filtering changes. Receives the browser event, the new `CompositeFilterDescriptor[]`, and the column `field`. */ onFilterChange?: (event: React.SyntheticEvent, filter: CompositeFilterDescriptor[], field: string) => void; /** * Sets the column `field` the menu operates on. */ field?: string; /** * Shows the ascending sort button when `true`. * * @default false */ sortAsc?: boolean; /** * Shows the descending sort button when `true`. * * @default false */ sortDesc?: boolean; /** * Provides the filtering UI components in render order. Supply up to three components: first filter, logic, second filter. */ filterContent?: any[]; /** * Sets the initial expand state of the filters. * * @default false */ expandFilters?: boolean; /** * Returns the initial `CompositeFilterDescriptor` based on the current `field`. Use to customize starting filter values. */ initialFilter?: (field: string) => CompositeFilterDescriptor; /** * Fires before the ColumnMenu items render. Use to add or remove items. * `defaultRendering` holds sorting and filtering elements. * `props` exposes the column `field` and `closeMenu()` helper. */ itemsRender?: (defaultRendering: (React.ReactElement | null)[], props: { field?: string; closeMenu: () => void; }) => React.ReactNode; /** * Fires before the ColumnMenu renders. Use to override the entire rendering. * `defaultRendering` contains the menu button and popup elements (and license watermark when present). */ render?: (defaultRendering: React.ReactElement[]) => React.ReactNode; } /** * Represents the ColumnMenuTextColumn component. Use it for `string` type columns. */ export declare const ColumnMenuTextColumn: React.FunctionComponent; /** * Represents the ColumnMenuNumericColumn component. Use it for `number` type columns. */ export declare const ColumnMenuNumericColumn: React.FunctionComponent; /** * Represents the ColumnMenuDateColumn component. Use it for `Date` type columns. */ export declare const ColumnMenuDateColumn: React.FunctionComponent; /** * Represents the ColumnMenuBooleanColumn component. Use it for `boolean` type columns. */ export declare const ColumnMenuBooleanColumn: React.FunctionComponent;