/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { CustomComponent } from '@progress/kendo-react-common'; import { ComboBoxBlurEvent, ComboBoxChangeEvent, ComboBoxCloseEvent, ComboBoxFilterChangeEvent, ComboBoxFocusEvent, ComboBoxOpenEvent, ComboBoxPageChangeEvent, ComboBoxProps } from '../ComboBox/ComboBoxProps.js'; import { DropDownsPopupSettings, VirtualizationSettings } from '../common/settings.js'; import { ListItemProps } from '../common/ListItem.js'; import * as React from 'react'; /** * The represents the interface of the MultiColumnComboBox columns. */ export interface MultiColumnComboBoxColumn { /** * The unique id of the column. */ uniqueKey?: string; /** * The field of the column. */ field?: string; /** * The header of the column. */ header?: React.ReactNode; /** * Represents the width of the column. If the width is not specified it is applied the default width of `200px`. */ width?: string | number; } /** * Represents the properties of the [MultiColumnComboBox](https://www.telerik.com/kendo-react-ui/components/dropdowns/api/multicolumncombobox) component. */ export interface MultiColumnComboBoxProps extends ComboBoxProps { /** * Determines the columns array of the MultiColumnComboBox. */ columns: MultiColumnComboBoxColumn[]; /** * Sets the data of the MultiColumnComboBox. */ data?: any[]; /** * Sets the opened and closed state of the MultiColumnComboBox. */ opened?: boolean; /** * The styles that are applied to the MultiColumnComboBox. */ style?: React.CSSProperties; /** * Sets the value of the MultiColumnComboBox. It can either be of the primitive (string, numbers) or of the complex (objects) type. */ value?: any; /** * Sets the default value of the MultiColumnComboBox. Similar to the native `select` HTML element. */ defaultValue?: any; /** * Sets additional classes to the MultiColumnComboBox. */ className?: string; /** * If `clearButton` is set to `true`, the MultiColumnComboBox renders a button on hovering over the component. Clicking this button resets the value of the MultiColumnComboBox to `undefined` and triggers the `change` event. */ clearButton?: boolean; /** * The hint that is displayed when the MultiColumnComboBox is empty. */ placeholder?: string; /** * Specifies whether the MultiColumnComboBox allows user-defined values that are not present in the dataset. Defaults to `false`. */ allowCustom?: boolean; /** * Sets the disabled state of the MultiColumnComboBox. */ disabled?: boolean; /** * Enables the filtering functionality of the MultiColumnComboBox. */ filterable?: boolean; /** * Sets the value of MultiColumnComboBox input. Useful for making the MultiColumnComboBox input a controlled component. */ filter?: string | null; /** * Sets the loading state of the MultiColumnComboBox. */ loading?: boolean; /** * Specifies the `tabIndex` of the MultiColumnComboBox. */ tabIndex?: number; /** * Specifies the `accessKey` of the MultiColumnComboBox. */ accessKey?: string; /** * Sets the key for comparing the data items of the MultiColumnComboBox. If `dataItemKey` is not set, the MultiColumnComboBox compares the items by reference. */ dataItemKey?: string; /** * Renders a floating label for the MultiColumnComboBox. */ label?: string; /** * Configures the popup of the MultiColumnComboBox. */ popupSettings?: DropDownsPopupSettings; /** * Configures the virtual scrolling of the MultiColumnComboBox. */ virtual?: VirtualizationSettings; /** * If set, the MultiColumnComboBox will use it to get the focused item index. Default functionality returns the first item which starts with the input text. */ focusedItemIndex?: (data: any, inputText: string, textField?: string) => number; /** * Fires each time the popup of the MultiColumnComboBox is about to open. */ onOpen?: (event: ComboBoxOpenEvent) => void; /** * Fires each time the popup of the MultiColumnComboBox is about to close. */ onClose?: (event: ComboBoxCloseEvent) => void; /** * Fires each time the user focuses the MultiColumnComboBox. */ onFocus?: (event: ComboBoxFocusEvent) => void; /** * Fires each time the MultiColumnComboBox gets blurred. */ onBlur?: (event: ComboBoxBlurEvent) => void; /** * Fires each time the value of the MultiColumnComboBox is about to change. */ onChange?: (event: ComboBoxChangeEvent) => void; /** * Fires each time the user types in the filter input. You can filter the source based on the passed filtration value. */ onFilterChange?: (event: ComboBoxFilterChangeEvent) => void; /** * Fires when both the virtual scrolling of the MultiColumnComboBox is enabled and the component requires data for another page. */ onPageChange?: (event: ComboBoxPageChangeEvent) => void; /** * @hidden */ onGroupScroll?: (event: { group?: string; }) => void; /** * Fires when a MultiColumnComboBox list item is about to be rendered. Used to override the default appearance of the list items. */ itemRender?: (li: React.ReactElement, itemProps: ListItemProps) => React.ReactNode; /** * Sets the header component of the MultiColumnComboBox. */ header?: React.ReactNode; /** * Sets the footer component of the MultiColumnComboBox. */ footer?: React.ReactNode; /** * Configures the `size` of the MultiColumnComboBox. * * The available options are: * - small * - medium * - large * * @default undefined (theme-controlled) */ size?: 'small' | 'medium' | 'large'; /** * Configures the `roundness` of the MultiColumnComboBox. * * The available options are: * - small * - medium * - large * - full * * @default undefined (theme-controlled) */ rounded?: 'small' | 'medium' | 'large' | 'full' | 'none'; /** * Configures the `fillMode` of the MultiColumnComboBox. * * The available options are: * - solid * - flat * - outline * * @default undefined (theme-controlled) */ fillMode?: 'solid' | 'flat' | 'outline'; /** * Sets a custom prefix to the MultiColumnComboBox component. */ prefix?: CustomComponent | undefined; /** * Sets a custom suffix to the MultiColumnComboBox component. */ suffix?: CustomComponent | undefined; } /** * Represents the target(element and props) of the MultiColumnComboBoxChangeEvent. */ export interface MultiColumnComboBoxHandle { /** * The current element or `null` of there is no one. */ element: HTMLSpanElement | null; /** * The value of the MultiColumnComboBox. */ value: any; /** * The props values of the MultiColumnComboBox. */ props: MultiColumnComboBoxProps; /** * The focus event callback. */ focus: () => void; } /** * Represents the type of the MultiColumnComboBoxChangeEvent. */ export interface MultiColumnComboBoxChangeEvent { /** * The value of the MultiColumnComboBoxChangeEvent. */ value: any; /** * The target of the MultiColumnComboBoxChangeEvent from MultiColumnComboBoxHandle. */ target: MultiColumnComboBoxHandle; /** * The event of the MultiColumnComboBoxChangeEvent. */ syntheticEvent: React.SyntheticEvent; } /** * Represents the PropsContext of the `MultiColumnComboBox` component. * Used for global configuration of all `MultiColumnComboBox` instances. * * For more information, refer to the [Dropdowns Props Context](https://www.telerik.com/kendo-react-ui/components/dropdowns/props-context) article. */ export declare const MultiColumnComboBoxPropsContext: React.Context<(p: MultiColumnComboBoxProps) => MultiColumnComboBoxProps>; /** * Represents the MultiColumnComboBox component. * * Accepts properties of type [MultiColumnComboBoxProps](https://www.telerik.com/kendo-react-ui/components/dropdowns/api/multicolumncomboboxprops). * Obtaining the `ref` returns an object of type [MultiColumnComboBoxHandle](https://www.telerik.com/kendo-react-ui/components/dropdowns/api/multicolumncomboboxhandle). * * @example * ```jsx * const columns = [ * { * field: "id", * header: "ID", * width: "100px", * }, * { * field: "name", * header: "Name", * width: "300px", * }, * { * field: "position", * header: "Position", * width: "300px", * }, * ]; * const App = () => { * return ( *
*
Employees:
* *
* ); * }; * ``` */ export declare const MultiColumnComboBox: React.ForwardRefExoticComponent>;