UNPKG

@progress/kendo-react-dropdowns

Version:

React DropDowns offer an interface for users to select different items from a list and more. KendoReact Dropdowns package

1,354 lines (1,318 loc) 139 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import { AdaptiveModeContextType } from '@progress/kendo-react-common'; import { CustomComponent } from '@progress/kendo-react-common'; import { default as default_2 } from 'prop-types'; import { DropDownsClassStructure } from '@progress/kendo-react-common'; import { FormComponent } from '@progress/kendo-react-common'; import { FormComponentProps } from '@progress/kendo-react-common'; import { FormComponentValidity } from '@progress/kendo-react-common'; import { ItemRenderProps } from '@progress/kendo-react-treeview'; import { JSX as JSX_2 } from 'react/jsx-runtime'; import { PopupProps } from '@progress/kendo-react-popup'; import * as React_2 from 'react'; import { RowHeightService } from '@progress/kendo-react-common'; import { SVGIcon } from '@progress/kendo-react-common'; import { TextBoxChangeEvent } from '@progress/kendo-react-inputs'; import { TextBoxHandle } from '@progress/kendo-react-inputs'; /** * @hidden */ declare enum ActiveDescendant { PopupList = 0, TagsList = 1 } /** @hidden */ export declare type AutoComplete = AutoCompleteHandle; /** * Represents the [KendoReact AutoComplete component]({% slug overview_autocomplete %}). * * Accepts properties of type [AutoCompleteProps]({% slug api_dropdowns_autocompleteprops %}). * Obtaining the `ref` returns an object of type [AutoCompleteHandle]({% slug api_dropdowns_autocompletehandle %}). * * @example * ```jsx * class App extends React.Component { * autocomplete = null; * render() { * return ( * <div> * <AutoComplete * data={[ "Albania", "Andorra", "Austria", "Belarus" ]} * ref={component => this.autocomplete = component} * /> * <button onClick={() => alert(this.autocomplete.value)}>alert value</button> * </div> * ); * } * } * ReactDOM.render(<App />, document.querySelector('my-app')); * ``` */ export declare const AutoComplete: React_2.ForwardRefExoticComponent<AutoCompleteProps & React_2.RefAttributes<any>>; /** * Represents the object of the `blur` AutoComplete event. */ export declare interface AutoCompleteBlurEvent extends BlurEvent<AutoComplete> { } /** * Represents the object of the `change` AutoComplete event. */ export declare interface AutoCompleteChangeEvent extends ChangeEvent<AutoComplete> { suggestion?: Suggestion; } /** * Represents the object of the `close` AutoComplete event. */ export declare interface AutoCompleteCloseEvent extends CloseEvent_2<AutoComplete> { } /** * Represents the object of the `focus` AutoComplete event. */ export declare interface AutoCompleteFocusEvent extends FocusEvent_2<AutoComplete> { } /** * Represent the `ref` of the AutoComplete component. */ export declare interface AutoCompleteHandle extends Pick<AutoCompleteWithoutContext, keyof AutoCompleteWithoutContext> { /** * Gets the `name` property of the AutoComplete. */ name: string | undefined; /** * Represents the validity state into which the AutoComplete is set. */ validity: FormComponentValidity; /** * The value of the AutoComplete. */ value: string; } /** * @hidden */ declare interface AutoCompleteInternalState extends InternalState { data: AutoCompleteState; } /** * Represents the object of the `open` AutoComplete event. */ export declare interface AutoCompleteOpenEvent extends OpenEvent<AutoComplete> { } /** * Represents the props of the [KendoReact AutoComplete component]({% slug overview_autocomplete %}). */ export declare interface AutoCompleteProps extends FormComponentProps { /** * Sets the data of the AutoComplete ([more information and example]({% slug binding_autocomplete %})). */ data?: any[]; /** * Sets the opened and closed state of the AutoComplete. */ opened?: boolean; /** * The styles that are applied to the AutoComplete. */ style?: React.CSSProperties; /** * Sets the value of the AutoComplete ([more information and example]({% slug binding_autocomplete %})). */ value?: string; /** * Sets the default value of the AutoComplete. Similar to the native `input` HTML element. */ defaultValue?: string; /** * Sets additional classes to the AutoComplete. */ className?: string; /** * By default, the AutoComplete renders a button on hovering over the component, which resets the value. * If `clearButton` is set to `false`, the button will not be rendered. */ clearButton?: boolean; /** * The hint that is displayed when the AutoComplete is empty. */ placeholder?: string; /** * Sets the read-only state of the AutoComplete. */ readonly?: boolean; /** * Enables the auto-completion of the text based on the first data item ([see example]({% slug suggestions_autocomplete %})). */ suggest?: boolean | string; /** * Sets the disabled state of the AutoComplete. */ disabled?: boolean; /** * Represents the `dir` HTML attribute. */ dir?: string; /** * Sets the loading state of the AutoComplete ([see example]({% slug filtering_autocomplete %}#toc-basic-configuration)). */ loading?: boolean; /** * Specifies the `tabIndex` of the AutoComplete. */ tabIndex?: number; /** * Specifies the `accessKey` of the AutoComplete. */ accessKey?: string; /** * Sets the data item field that represents the item text ([see example]({% slug binding_autocomplete %}#toc-datasets-of-objects)). If the data contains only primitive values, do not define it. */ textField?: string; /** * Renders a floating label for the AutoComplete. */ label?: string; /** * Configures the popup of the AutoComplete. */ popupSettings?: DropDownsPopupSettings; /** * Specifies the id of the component. */ id?: string; /** * Identifies the element(s) which will describe the component, similar to [HTML aria-describedby attribute](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute). * For example these elements could contain error or hint message. */ ariaDescribedBy?: string; /** * Identifies the element(s) which will label the component. */ ariaLabelledBy?: string; /** * If set, the AutoComplete will use it to get the focused item index. * * Default functionality returns the first item which starts with the input text. * * @example * ```jsx-no-run * const focusedItemIndex = (data, inputText, textField) => { * let text = inputText.toLowerCase(); * return data.findIndex(item => * String(textField ? item[textField] : item).toLowerCase().includes(text)); * }; * * <AutoComplete focusedItemIndex={focusedItemIndex} /> * ``` */ focusedItemIndex?: (data: any, inputText: string, textField?: string) => number; /** * Fires each time the popup of the AutoComplete is about to open. */ onOpen?: (event: AutoCompleteOpenEvent) => void; /** * Fires each time the popup of the AutoComplete is about to close. */ onClose?: (event: AutoCompleteCloseEvent) => void; /** * Fires each time the user focuses the AutoComplete. */ onFocus?: (event: AutoCompleteFocusEvent) => void; /** * Fires each time the AutoComplete gets blurred. */ onBlur?: (event: AutoCompleteBlurEvent) => void; /** * Fires each time the value of the AutoComplete is about to change ([more information and example]({% slug binding_autocomplete %})). */ onChange?: (event: AutoCompleteChangeEvent) => void; /** * Fires when the AutoComplete input element is about to be rendered. Use it to override the default appearance of the component. */ valueRender?: (rendering: React.ReactElement<HTMLSpanElement>) => React.ReactNode; /** * Fires when an AutoComplete list item is about to be rendered ([see example]({% slug customrendering_autocomplete %}#toc-items)). Used to override the default appearance of the list items. */ itemRender?: (li: React.ReactElement<HTMLLIElement>, itemProps: ListItemProps) => React.ReactNode; /** * Fires when the element which indicates no data in the popup is about to be rendered ([see example]({% slug customrendering_autocomplete %}#toc-no-data)). Used to override the default appearance of the element. */ listNoDataRender?: (element: React.ReactElement<HTMLDivElement>) => React.ReactNode; /** * Sets the header component of the AutoComplete ([see example]({% slug customrendering_autocomplete %}#toc-headers-and-footers)). */ header?: React.ReactNode; /** * Sets the footer component of the AutoComplete ([see example]({% slug customrendering_autocomplete %}#toc-headers-and-footers)). */ footer?: React.ReactNode; /** * Configures the `size` of the AutoComplete. * * The available options are: * - small * - medium * - large * - null&mdash;Does not set a size `className`. * * @default `medium` */ size?: null | 'small' | 'medium' | 'large'; /** * Configures the `roundness` of the AutoComplete. * * The available options are: * - small * - medium * - large * - full * - null&mdash;Does not set a rounded `className`. * * @default `medium` */ rounded?: null | 'small' | 'medium' | 'large' | 'full'; /** * Configures the `fillMode` of the AutoComplete. * * The available options are: * - solid * - flat * - outline * - null&mdash;Does not set a fillMode `className`. * * @default `solid` */ fillMode?: null | 'solid' | 'flat' | 'outline'; /** * Sets the data item field that represents the start of a group. Applicable to objects data. */ groupField?: string; /** * Fires when a AutoComplete group header item is about to be rendered. Used to override the default appearance of the group's headers. */ groupHeaderItemRender?: (li: React.ReactElement<HTMLLIElement>, itemProps: ListGroupItemProps) => React.ReactNode; /** * Fires when a AutoComplete sticky group header item is about to be rendered. Used to override the default appearance of the sticky group header of the component. */ groupStickyHeaderItemRender?: (div: React.ReactElement<HTMLDivElement>, stickyHeaderProps: GroupStickyHeaderProps) => React.ReactNode; /** * @hidden */ list?: any; /** * Sets the key for comparing the data items of the AutoComplete. If `dataItemKey` is not set, the AutoComplete compares the items by reference. */ dataItemKey?: string; /** * Providing different rendering of the popup element based on the screen dimensions. */ adaptive?: boolean; /** * Specifies the text that is rendered as title in the adaptive popup. */ adaptiveTitle?: string; /** * Defines if AutoComplete's disabled items will be skipped or focused when navigating through the list of items using a keyboard. Defaults to `true`. */ skipDisabledItems?: boolean; /** * Sets a custom prefix to the AutoComplete component. */ prefix?: CustomComponent<any>; /** * Sets a custom suffix to the AutoComplete component. */ suffix?: CustomComponent<any>; /** * Sets the HTML attributes of the inner focusable input element. * Attributes which are essential for certain component functionalities cannot be changed. */ inputAttributes?: React.InputHTMLAttributes<HTMLInputElement>; /** * @hidden * This prop is provided by the withAdaptiveModeContext HOC to subscribe to AdaptiveModeContext. */ _adaptiveMode?: AdaptiveModeContextType; } /** * Represents the PropsContext of the `AutoComplete` component. * Used for global configuration of all `AutoComplete` instances. * * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article. */ export declare const AutoCompletePropsContext: React_2.Context<(p: AutoCompleteProps) => AutoCompleteProps>; /** * @hidden */ declare interface AutoCompleteState extends DropDownStateBase { focusedItem?: any; value?: string; windowWidth?: number; } /** @hidden */ export declare class AutoCompleteWithoutContext extends React_2.Component<AutoCompleteProps, AutoCompleteState> implements FormComponent { static displayName: string; /** * @hidden */ static propTypes: { size: default_2.Requireable<"small" | "large" | "medium" | null | undefined>; rounded: default_2.Requireable<"small" | "large" | "medium" | "full" | null | undefined>; fillMode: default_2.Requireable<"flat" | "solid" | "outline" | null | undefined>; groupField: default_2.Requireable<string>; suggest: default_2.Requireable<NonNullable<string | boolean | null | undefined>>; placeholder: default_2.Requireable<string>; value: default_2.Requireable<string>; defaultValue: default_2.Requireable<string>; validationMessage: default_2.Requireable<string>; required: default_2.Requireable<boolean>; readonly: default_2.Requireable<boolean>; clearButton: default_2.Requireable<boolean>; valueRender: default_2.Requireable<(...args: any[]) => any>; id: default_2.Requireable<string>; ariaLabelledBy: default_2.Requireable<string>; ariaDescribedBy: default_2.Requireable<string>; list: default_2.Requireable<any>; adaptive: default_2.Requireable<boolean>; adaptiveTitle: default_2.Requireable<string>; onCancel: default_2.Requireable<(...args: any[]) => any>; skipDisabledItems: default_2.Requireable<boolean>; inputAttributes: default_2.Requireable<object>; opened: default_2.Requireable<boolean>; disabled: default_2.Requireable<boolean>; dir: default_2.Requireable<string>; tabIndex: default_2.Requireable<number>; accessKey: default_2.Requireable<string>; data: default_2.Requireable<any[]>; textField: default_2.Requireable<string>; className: default_2.Requireable<string>; label: default_2.Requireable<string>; loading: default_2.Requireable<boolean>; popupSettings: default_2.Requireable<default_2.InferProps<{ animate: default_2.Requireable<NonNullable<boolean | default_2.InferProps<{ openDuration: default_2.Requireable<number>; closeDuration: default_2.Requireable<number>; }> | null | undefined>>; popupClass: default_2.Requireable<string>; className: default_2.Requireable<string>; appendTo: default_2.Requireable<any>; width: default_2.Requireable<NonNullable<string | number | null | undefined>>; height: default_2.Requireable<NonNullable<string | number | null | undefined>>; }>>; onOpen: default_2.Requireable<(...args: any[]) => any>; onClose: default_2.Requireable<(...args: any[]) => any>; onFocus: default_2.Requireable<(...args: any[]) => any>; onBlur: default_2.Requireable<(...args: any[]) => any>; onChange: default_2.Requireable<(...args: any[]) => any>; itemRender: default_2.Requireable<(...args: any[]) => any>; listNoDataRender: default_2.Requireable<(...args: any[]) => any>; focusedItemIndex: default_2.Requireable<(...args: any[]) => any>; header: default_2.Requireable<default_2.ReactNodeLike>; footer: default_2.Requireable<default_2.ReactNodeLike>; /** * @hidden */ }; /** * @hidden */ static defaultProps: { size: "small" | "large" | "medium" | null | undefined; rounded: "small" | "large" | "medium" | "full" | null | undefined; fillMode: "flat" | "solid" | "outline" | null | undefined; skipDisabledItems: boolean; prefix: undefined; suffix: undefined; popupSettings: { height: string; }; required: boolean; validityStyles: boolean; }; /** * @hidden */ readonly state: AutoCompleteState; protected readonly base: DropDownBase; private _element; private get _inputId(); private _suggested; private _input; private _adaptiveInput; private _skipFocusEvent; private _valueDuringOnChange?; private _isScrolling; private itemHeight; private observerResize?; private get document(); /** * @hidden */ focus: () => void; /** * @hidden */ get element(): HTMLSpanElement | null; /** * The value of the AutoComplete. */ get value(): string; /** * Gets the `name` property of the AutoComplete. */ get name(): string | undefined; /** * Represents the validity state into which the AutoComplete is set. */ get validity(): FormComponentValidity; /** @hidden */ get opened(): boolean; /** * The mobile mode of the AutoComplete. */ get mobileMode(): boolean; /** * @hidden */ protected get validityStyles(): boolean; /** * @hidden */ protected get required(): boolean; /** * @hidden */ componentDidUpdate(prevProps: AutoCompleteProps, prevState: AutoCompleteState): void; /** * @hidden */ componentDidMount(): void; /** * @hidden */ componentWillUnmount(): void; /** * @hidden */ render(): JSX_2.Element; /** * @hidden */ handleItemSelect: (index: number, state: AutoCompleteInternalState) => void; /** * @hidden */ itemFocus: (index: number, state: AutoCompleteInternalState) => void; /** * @hidden */ togglePopup: (state: InternalState) => void; /** * @hidden */ onNavigate(state: AutoCompleteInternalState, keyCode: number, skipItems?: number): void; /** * @hidden */ applyInputValue(value: string, state: AutoCompleteInternalState, eventKey?: number): void; private setValidity; private renderSearchBar; private renderAdaptiveListContainer; private onCancel; private renderListContainer; private listContainerContent; private renderList; private onScroll; private handleItemClick; private onChangeHandler; private clearButtonClick; private onInputKeyDown; private handleFocus; private handleBlur; private handleWrapperClick; private triggerOnChange; private focusElement; private applyState; private suggestValue; private focusedIndex; private calculateMedia; } /** * @hidden */ declare interface BlurEvent<T> extends DropdownEvent<T> { } /** * @hidden */ declare interface CancelEvent<T> extends DropdownEvent<T> { } /** * @hidden */ declare interface ChangeEvent<T> extends DropdownEvent<T> { /** * The current value of the component. */ value: any; } /** * @hidden */ declare interface CloseEvent_2<T> extends DropdownEvent<T> { } /** @hidden */ export declare type ComboBox = ComboBoxHandle; /** * Represents the [KendoReact ComboBox component]({% slug overview_combobox %}). * * Accepts properties of type [ComboBoxProps]({% slug api_dropdowns_comboboxprops %}). * Obtaining the `ref` returns an object of type [ComboBoxHandle]({% slug api_dropdowns_comboboxhandle %}). * * @example * ```jsx * class App extends React.Component { * combobox = null; * render() { * return ( * <div> * <ComboBox * data={[ "Albania", "Andorra", "Austria", "Belarus" ]} * ref={component => this.combobox = component} * /> * <button onClick={() => alert(this.combobox.value)}>alert value</button> * </div> * ); * } * } * ReactDOM.render(<App />, document.querySelector('my-app')); * ``` */ export declare const ComboBox: React_2.ForwardRefExoticComponent<ComboBoxProps & React_2.RefAttributes<any>>; /** * Represents the object of the `blur` ComboBox event. */ export declare interface ComboBoxBlurEvent extends BlurEvent<ComboBox> { } /** * Represents the object of the `change` ComboBox event. */ export declare interface ComboBoxChangeEvent extends ChangeEvent<ComboBox> { } /** * Represents the object of the `close` ComboBox event. */ export declare interface ComboBoxCloseEvent extends CloseEvent_2<ComboBox> { } /** * Represents the object of the `FilterChange` ComboBox event. */ export declare interface ComboBoxFilterChangeEvent extends FilterChangeEvent<ComboBox> { } /** * Represents the object of the `focus` ComboBox event. */ export declare interface ComboBoxFocusEvent extends FocusEvent_2<ComboBox> { } /** * Represent the `ref` of the ComboBox component. */ export declare interface ComboBoxHandle extends Pick<ComboBoxWithoutContext, keyof ComboBoxWithoutContext> { /** * The index of the selected item. */ index: number; /** * Gets the `name` property of the ComboBox. */ name: string | undefined; /** * Represents the validity state into which the component is set. */ validity: FormComponentValidity; /** * The value of the ComboBox. */ value: any; } /** * Represents the object of the `open` ComboBox event. */ export declare interface ComboBoxOpenEvent extends OpenEvent<ComboBox> { } /** * Represents the object of the `PageChange` ComboBox event. */ export declare interface ComboBoxPageChangeEvent extends PageChangeEvent<ComboBox> { } /** * Represents the props of the [KendoReact ComboBox component]({% slug overview_combobox %}). */ export declare interface ComboBoxProps extends FormComponentProps { /** * Sets the data of the ComboBox ([more information and examples]({% slug binding_combobox %})). */ data?: any[]; /** * Sets the opened and closed state of the ComboBox. */ opened?: boolean; /** * The styles that are applied to the ComboBox. */ style?: React.CSSProperties; /** * Sets the value of the ComboBox ([more information and examples]({% slug binding_combobox %})). It can either be of the primitive (string, numbers) or of the complex (objects) type. */ value?: any; /** * Sets the default value of the ComboBox. Similar to the native `select` HTML element. */ defaultValue?: any; /** * Sets additional classes to the ComboBox. */ className?: string; /** * Sets CSS classes to the expand `icon` DOM element. */ iconClassName?: string; /** * Sets the specified SVG icon. */ svgIcon?: SVGIcon; /** * If `clearButton` is set to `true`, the ComboBox renders a button on hovering over the component. Clicking this button resets the value of the ComboBox to `undefined` and triggers the `change` event. */ clearButton?: boolean; /** * The hint that is displayed when the ComboBox is empty. */ placeholder?: string; /** * Sets the title attribute to the underlying input element of the ComboBox. */ title?: string; /** * Enables the auto-completion of the text based on the first data item ([see example]({% slug suggestions_combobox %})). */ suggest?: boolean; /** * Specifies whether the ComboBox allows user-defined values that are not present in the dataset ([see example]({% slug custom_values_combobox %})). Defaults to `false`. */ allowCustom?: boolean; /** * Sets the disabled state of the ComboBox. */ disabled?: boolean; /** * Represents the `dir` HTML attribute. */ dir?: string; /** * Enables the filtering functionality of the ComboBox ([more information and examples]({% slug filtering_combobox %})). */ filterable?: boolean; /** * Sets the value of ComboBox input. Useful for making the ComboBox input a [controlled component](https://react.dev/learn/sharing-state-between-components#controlled-and-uncontrolled-components). */ filter?: string | null; /** * Sets the value of the adaptive filtering input of the of ComboBox. */ adaptiveFilter?: string; /** * Sets the loading state of the ComboBox ([see example]({% slug filtering_combobox %}#toc-basic-configuration)). */ loading?: boolean; /** * Specifies the `tabIndex` of the ComboBox. */ tabIndex?: number; /** * Specifies the `accessKey` of the ComboBox. */ accessKey?: string; /** * Sets the data item field that represents the item text. If the data contains only primitive values, do not define it. */ textField?: string; /** * Sets the data item field that represents the start of a group. Applicable to objects data. */ groupField?: string; /** * Defines the `classic` or `modern` type of the grouping's visualization. Defaults to `modern`. */ groupMode?: string; /** * @hidden Used to indicate if the ComboBox is with multiple columns */ isMultiColumn?: boolean; /** * Sets the key for comparing the data items of the ComboBox. If `dataItemKey` is not set, the ComboBox compares the items by reference ([see example]({% slug binding_combobox %}#toc-datasets-of-objects)). */ dataItemKey?: string; /** * Renders a floating label for the ComboBox. */ label?: string; /** * Configures the popup of the ComboBox. */ popupSettings?: DropDownsPopupSettings; /** * Configures the virtual scrolling of the ComboBox ([more information and examples]({% slug virtualization_combobox %})). */ virtual?: VirtualizationSettings; /** * Specifies the id of the component. */ id?: string; /** * Identifies the element(s) which will describe the component, similar to [HTML aria-describedby attribute](https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-describedby_attribute). * For example these elements could contain error or hint message. */ ariaDescribedBy?: string; /** * Identifies the element(s) which will label the component. */ ariaLabelledBy?: string; /** * The accessible label of the component. */ ariaLabel?: string; /** * If set, the ComboBox will use it to get the focused item index. * * Default functionality returns the first item which starts with the input text. * * @example * ```jsx-no-run * const focusedItemIndex = (data, inputText, textField) => { * let text = inputText.toLowerCase(); * return data.findIndex(item => * String(textField ? item[textField] : item).toLowerCase().includes(text)); * }; * * <ComboBox focusedItemIndex={focusedItemIndex} /> * ``` */ focusedItemIndex?: (data: any, inputText: string, textField?: string) => number; /** * Fires each time the popup of the ComboBox is about to open. */ onOpen?: (event: ComboBoxOpenEvent) => void; /** * Fires each time the popup of the ComboBox is about to close. */ onClose?: (event: ComboBoxCloseEvent) => void; /** * Fires each time the user focuses the ComboBox. */ onFocus?: (event: ComboBoxFocusEvent) => void; /** * Fires each time the ComboBox gets blurred. */ onBlur?: (event: ComboBoxBlurEvent) => void; /** * Fires each time the value of the ComboBox is about to change ([see examples]({% slug binding_combobox %})). */ onChange?: (event: ComboBoxChangeEvent) => void; /** * Fires each time the user types in the filter input ([see examples]({% slug filtering_combobox %}#toc-basic-configuration)). You can filter the source based on the passed filtration value. */ onFilterChange?: (event: ComboBoxFilterChangeEvent) => void; /** * Fires when both the virtual scrolling of the ComboBox is enabled and the component requires data for another page ([more information and examples]({% slug virtualization_combobox %})). */ onPageChange?: (event: ComboBoxPageChangeEvent) => void; /** * Fires when the ComboBox input element is about to be rendered. Use it to override the default appearance of the component. */ valueRender?: (rendering: React.ReactElement<HTMLSpanElement>) => React.ReactNode; /** * Fires when a ComboBox list item is about to be rendered ([see example]({% slug customrendering_combobox %}#toc-items)). Used to override the default appearance of the list items. */ itemRender?: (li: React.ReactElement<HTMLLIElement>, itemProps: ListItemProps) => React.ReactNode; /** * Fires when a ComboBox group header item is about to be rendered. Used to override the default appearance of the group's headers when the component is configured in `modern` group mode. */ groupHeaderItemRender?: (li: React.ReactElement<HTMLLIElement>, itemProps: ListGroupItemProps) => React.ReactNode; /** * Fires when a ComboBox sticky group header item is about to be rendered. Used to override the default appearance of the sticky group header of the component. */ groupStickyHeaderItemRender?: (div: React.ReactElement<HTMLDivElement>, stickyHeaderProps: GroupStickyHeaderProps) => React.ReactNode; /** * Fires when the element which indicates no data in the popup is about to be rendered. Used to override the default appearance of the element. */ listNoDataRender?: (element: React.ReactElement<HTMLDivElement>) => React.ReactNode; /** * @hidden */ onGroupScroll?: (event: { group?: string; }) => void; /** * Sets the header component of the ComboBox ([see example]({% slug customrendering_combobox %}#toc-headers-and-footers)). */ header?: React.ReactNode; /** * Sets the footer component of the ComboBox ([see example]({% slug customrendering_combobox %}#toc-headers-and-footers)). */ footer?: React.ReactNode; /** * @hidden */ footerClassName?: string; /** * @hidden */ list?: any; /** * Configures the `size` of the ComboBox. * * The available options are: * - small * - medium * - large * - null&mdash;Does not set a size `className`. * * @default `medium` */ size?: null | 'small' | 'medium' | 'large'; /** * Configures the `roundness` of the ComboBox. * * The available options are: * - small * - medium * - large * - full * - null&mdash;Does not set a rounded `className`. * * @default `medium` */ rounded?: null | 'small' | 'medium' | 'large' | 'full'; /** * Configures the `fillMode` of the ComboBox. * * The available options are: * - solid * - flat * - outline * - null&mdash;Does not set a fillMode `className`. * * @default `solid` */ fillMode?: null | 'solid' | 'flat' | 'outline'; /** * Providing different rendering of the popup element based on the screen dimensions. */ adaptive?: boolean; /** * Specifies the text that is rendered as title in the adaptive popup. */ adaptiveTitle?: string; /** * Defines if ComboBox's disabled items will be skipped or focused when navigating through the list of items using a keyboard. Defaults to `true`. */ skipDisabledItems?: boolean; /** * Sets a custom prefix to the ComboBox component. */ prefix?: CustomComponent<any>; /** * Sets a custom suffix to the ComboBox component. */ suffix?: CustomComponent<any>; /** * @hidden */ unstyled?: DropDownsClassStructure; /** * Sets the HTML attributes of the inner focusable input element. * Attributes which are essential for certain component functionalities cannot be changed. */ inputAttributes?: React.InputHTMLAttributes<HTMLInputElement>; /** * @hidden * This prop is provided by the withAdaptiveModeContext HOC to subscribe to AdaptiveModeContext. */ _adaptiveMode?: AdaptiveModeContextType; } /** * Represents the PropsContext of the `ComboBox` component. * Used for global configuration of all `ComboBox` instances. * * For more information, refer to the [Dropdowns Props Context]({% slug props-context_dropdowns %}) article. */ export declare const ComboBoxPropsContext: React_2.Context<(p: ComboBoxProps) => ComboBoxProps>; /** @hidden */ declare interface ComboBoxState extends DropDownStateBase { filterText?: string; suggestedText?: string; focusedItem?: any; windowWidth?: number; } /** @hidden */ export declare class ComboBoxWithoutContext extends React_2.Component<ComboBoxProps, ComboBoxState> implements FormComponent { static displayName: string; /** @hidden */ static propTypes: { size: default_2.Requireable<"small" | "large" | "medium" | null | undefined>; rounded: default_2.Requireable<"small" | "large" | "medium" | "full" | null | undefined>; fillMode: default_2.Requireable<"flat" | "solid" | "outline" | null | undefined>; dataItemKey: default_2.Requireable<string>; groupField: default_2.Requireable<string>; groupMode: default_2.Requireable<string | undefined>; isMultiColumn: default_2.Requireable<boolean>; suggest: default_2.Requireable<boolean>; placeholder: default_2.Requireable<string>; title: default_2.Requireable<string>; allowCustom: default_2.Requireable<boolean>; clearButton: default_2.Requireable<boolean>; iconClassName: default_2.Requireable<string>; svgIcon: default_2.Requireable<default_2.InferProps<{ name: default_2.Validator<string>; content: default_2.Validator<string>; viewBox: default_2.Validator<string>; }>>; validationMessage: default_2.Requireable<string>; required: default_2.Requireable<boolean>; id: default_2.Requireable<string>; ariaLabelledBy: default_2.Requireable<string>; ariaLabel: default_2.Requireable<string>; ariaDescribedBy: default_2.Requireable<string>; list: default_2.Requireable<any>; valueRender: default_2.Requireable<(...args: any[]) => any>; skipDisabledItems: default_2.Requireable<boolean>; inputAttributes: default_2.Requireable<object>; value: default_2.Requireable<any>; defaultValue: default_2.Requireable<any>; filterable: default_2.Requireable<boolean>; filter: default_2.Requireable<string>; virtual: default_2.Requireable<default_2.InferProps<{ pageSize: default_2.Validator<number>; skip: default_2.Validator<number>; total: default_2.Validator<number>; }>>; onFilterChange: default_2.Requireable<(...args: any[]) => any>; onPageChange: default_2.Requireable<(...args: any[]) => any>; opened: default_2.Requireable<boolean>; disabled: default_2.Requireable<boolean>; dir: default_2.Requireable<string>; tabIndex: default_2.Requireable<number>; accessKey: default_2.Requireable<string>; data: default_2.Requireable<any[]>; textField: default_2.Requireable<string>; /** @hidden */ className: default_2.Requireable<string>; label: default_2.Requireable<string>; loading: default_2.Requireable<boolean>; popupSettings: default_2.Requireable<default_2.InferProps<{ animate: default_2.Requireable<NonNullable<boolean | default_2.InferProps<{ openDuration: default_2.Requireable<number>; closeDuration: default_2.Requireable<number>; }> | null | undefined>>; popupClass: default_2.Requireable<string>; className: default_2.Requireable<string>; appendTo: default_2.Requireable<any>; width: default_2.Requireable<NonNullable<string | number | null | undefined>>; height: default_2.Requireable<NonNullable<string | number | null | undefined>>; }>>; onOpen: default_2.Requireable<(...args: any[]) => any>; onClose: default_2.Requireable<(...args: any[]) => any>; onFocus: default_2.Requireable<(...args: any[]) => any>; onBlur: default_2.Requireable<(...args: any[]) => any>; onChange: default_2.Requireable<(...args: any[]) => any>; itemRender: default_2.Requireable<(...args: any[]) => any>; listNoDataRender: default_2.Requireable<(...args: any[]) => any>; focusedItemIndex: default_2.Requireable<(...args: any[]) => any>; header: default_2.Requireable<default_2.ReactNodeLike>; footer: default_2.Requireable<default_2.ReactNodeLike>; }; /** @hidden */ static defaultProps: { size: "small" | "large" | "medium" | null | undefined; rounded: "small" | "large" | "medium" | "full" | null | undefined; fillMode: "flat" | "solid" | "outline" | null | undefined; allowCustom: boolean; clearButton: boolean; required: boolean; groupMode: string | undefined; isMultiColumn: boolean; skipDisabledItems: boolean; prefix: undefined; suffix: undefined; popupSettings: { height: string; }; validityStyles: boolean; }; /** @hidden */ readonly state: ComboBoxState; protected readonly base: DropDownBase; private _element; private get _inputId(); private _valueDuringOnChange; private _valueOnDidUpdate; private _suggested; private _skipBlur; private _input; private _adaptiveFilterInput; private itemHeight; private duplicates; private hasDuplicates; private navigationIndex; private observerResize?; private readonly showLicenseWatermark; private get document(); constructor(props: ComboBoxProps); /** @hidden */ focus: () => void; /** @hidden */ get element(): HTMLSpanElement | null; /** * The mobile mode of the ComboBox. */ get mobileMode(): boolean; /** * The value of the ComboBox. */ get value(): any; /** * The index of the selected item. */ get index(): number; /** * Gets the `name` property of the ComboBox. */ get name(): string | undefined; /** * Represents the validity state into which the component is set. */ get validity(): FormComponentValidity; protected get validityStyles(): boolean; /** @hidden */ protected get required(): boolean; /** * @hidden * Executed when no dataItemKey and textField are provided */ private checkForDuplicatePlainTextRecords; /** @hidden */ componentDidUpdate(prevProps: ComboBoxProps, prevState: ComboBoxState): void; /** @hidden */ componentDidMount(): void; /** @hidden */ componentWillUnmount(): void; /** @hidden */ render(): JSX_2.Element; /** @hidden */ handleItemSelect: (index: number, state: ComboInternalState) => void; /** @hidden */ onNavigate(state: InternalState, keyCode: number, skipItems?: number): void; private onPopupOpened; private componentRef; private getCurrentValueDisabledStatus; private toggleBtnClick; private applyValueOnEnter; private closeOpenedApplyStateNonMobileMode; private applyValueOnRejectSuggestions; private selectFocusedItem; private renderAdaptiveListContainer; private renderMobileListFilter; private renderListContainer; private renderList; private handleMobileFilterChange; private renderSearchBar; private onScroll; private handleItemClick; private handleBlur; private onInputClick; private onInputKeyDown; private inputOnChange; private clearValue; private clearButtonClick; private clearValueOnEnterOrEsc; private clearValueOnBlur; private clearValueOnToggleBtnClick; private triggerOnChange; private getFocusedIndex; private suggestValue; private applyState; private setValidity; private calculateMedia; } /** @hidden */ declare interface ComboInternalState extends InternalState { data: ComboBoxState; } /** * @hidden */ declare class DropDownBase { static basicPropTypes: { opened: default_2.Requireable<boolean>; disabled: default_2.Requireable<boolean>; dir: default_2.Requireable<string>; tabIndex: default_2.Requireable<number>; accessKey: default_2.Requireable<string>; data: default_2.Requireable<any[]>; textField: default_2.Requireable<string>; className: default_2.Requireable<string>; label: default_2.Requireable<string>; loading: default_2.Requireable<boolean>; popupSettings: default_2.Requireable<default_2.InferProps<{ animate: default_2.Requireable<NonNullable<boolean | default_2.InferProps<{ openDuration: default_2.Requireable<number>; closeDuration: default_2.Requireable<number>; }> | null | undefined>>; popupClass: default_2.Requireable<string>; className: default_2.Requireable<string>; appendTo: default_2.Requireable<any>; width: default_2.Requireable<NonNullable<string | number | null | undefined>>; height: default_2.Requireable<NonNullable<string | number | null | undefined>>; }>>; onOpen: default_2.Requireable<(...args: any[]) => any>; onClose: default_2.Requireable<(...args: any[]) => any>; onFocus: default_2.Requireable<(...args: any[]) => any>; onBlur: default_2.Requireable<(...args: any[]) => any>; onChange: default_2.Requireable<(...args: any[]) => any>; itemRender: default_2.Requireable<(...args: any[]) => any>; listNoDataRender: default_2.Requireable<(...args: any[]) => any>; focusedItemIndex: default_2.Requireable<(...args: any[]) => any>; header: default_2.Requireable<default_2.ReactNodeLike>; footer: default_2.Requireable<default_2.ReactNodeLike>; }; static propTypes: { value: default_2.Requireable<any>; defaultValue: default_2.Requireable<any>; filterable: default_2.Requireable<boolean>; filter: default_2.Requireable<string>; virtual: default_2.Requireable<default_2.InferProps<{ pageSize: default_2.Validator<number>; skip: default_2.Validator<number>; total: default_2.Validator<number>; }>>; onFilterChange: default_2.Requireable<(...args: any[]) => any>; onPageChange: default_2.Requireable<(...args: any[]) => any>; opened: default_2.Requireable<boolean>; disabled: default_2.Requireable<boolean>; dir: default_2.Requireable<string>; tabIndex: default_2.Requireable<number>; accessKey: default_2.Requireable<string>; data: default_2.Requireable<any[]>; textField: default_2.Requireable<string>; className: default_2.Requireable<string>; label: default_2.Requireable<string>; loading: default_2.Requireable<boolean>; popupSettings: default_2.Requireable<default_2.InferProps<{ animate: default_2.Requireable<NonNullable<boolean | default_2.InferProps<{ openDuration: default_2.Requireable<number>; closeDuration: default_2.Requireable<number>; }> | null | undefined>>; popupClass: default_2.Requireable<string>; className: default_2.Requireable<string>; appendTo: default_2.Requireable<any>; width: default_2.Requireable<NonNullable<string | number | null | undefined>>; height: default_2.Requireable<NonNullable<string | number | null | undefined>>; }>>; onOpen: default_2.Requireable<(...args: any[]) => any>; onClose: default_2.Requireable<(...args: any[]) => any>; onFocus: default_2.Requireable<(...args: any[]) => any>; onBlur: default_2.Requireable<(...args: any[]) => any>; onChange: default_2.Requireable<(...args: any[]) => any>; itemRender: default_2.Requireable<(...args: any[]) => any>; listNoDataRender: default_2.Requireable<(...args: any[]) => any>; focusedItemIndex: default_2.Requireable<(...args: any[]) => any>; header: default_2.Requireable<default_2.ReactNodeLike>; footer: default_2.Requireable<default_2.ReactNodeLike>; }; static defaultProps: { popupSettings: { height: string; }; required: boolean; validityStyles: boolean; }; popupWidth?: string; wrapper: HTMLSpanElement | null; list: HTMLUListElement | null; dirCalculated?: string; readonly vs: VirtualScroll; readonly navigation: Navigation; readonly listBoxId: string; readonly guid: string; readonly component: DropDownComponent; constructor(component: DropDownComponent); didUpdate(): void; didMount(): void; calculateDir(): void; calculatePopupWidth(): void; scrollToItem(itemIndex: number, vsEnabled?: boolean, once?: boolean): void; updateComponentArgs(args: any): void; handleItemClick: (index: number, event: React_2.MouseEvent<HTMLLIElement> | React_2.KeyboardEvent<HTMLInputElement>) => void; handleFocus: React_2.FocusEventHandler<HTMLSpanElement>; filterChanged: (text: string | null, state: InternalState) => void; initState(): InternalState; applyState(state: InternalState): void; togglePopup: (state: InternalState) => void; pageChange: (page: Page, syntheticEvent: React_2.SyntheticEvent<any>) => void; triggerOnPageChange(state: InternalState, skip: number, take: number): void; triggerPageChangeCornerItems(item: any, state: InternalState): void; scrollToVirtualItem: (virtual: VirtualizationSettings, selectedItemIndex: number) => void; /** * @hidden * Scrolls the data inside the popup of a selected DropDown by `one page`. The page size * depends on the height of the popup. * * @param {number} direction Defines the direction(Up/Down) in which the page will be moved * @param {number} filterHeight Defines the heigh of the filter element that appears in the DropDownList and DropDownTree. * This property is added for handling the filtering scenarios of the mentioned components. */ scrollPopupByPageSize: (direction: number) => void; renderScrollElement: () => false | JSX_2.Element; getPopupSettings(): DropDownsPopupSettings; getAdaptiveAnimation(): boolean; getGroupedDataModernMode(data: any[], groupField: string): any[]; resetGroupStickyHeader: (groupName: string, that: any) => void; } /** * @hidden */ declare interface DropDownComponent { props: DropDownComponentProps; setState: Function; forceUpdate: Function; state: DropDownStateBase; element: HTMLSpanElement | null; handleItemSelect: Function; value: any; } /** * @hidden */ declare interface DropDownComponentProps { data?: any[]; opened?: boolean; value?: any; disabled?: boolean; tabIndex?: number; dir?: string; defaultItem?: any; filterable?: boolean; filter?: string | null; textField?: string; dataItemKey?: string; popupSettings?: DropDownsPopupSettings; style?: React_2.CSSProperties; virtual?: VirtualizationSettings; onOpen?: (event: any) => void; onClose?: (event: any) => void; onFocus?: (even