/**----------------------------------------------------------------------------------------- * Copyright © 2026 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the project root for more information *-------------------------------------------------------------------------------------------*/ import { Renderer2, ElementRef, EventEmitter, ViewContainerRef, OnDestroy, OnChanges, NgZone, TemplateRef, ChangeDetectorRef, OnInit, SimpleChanges, AfterContentChecked, Injector, AfterViewInit } from '@angular/core'; import { ControlValueAccessor, FormControl } from '@angular/forms'; import { AdaptiveSize, AdaptiveService } from '@progress/kendo-angular-utils'; import { PopupSettings } from '../common/models/popup-settings'; import { AdaptiveMode } from '../common/util'; import { SelectionService } from '../common/selection/selection.service'; import { NavigationService } from '../common/navigation/navigation.service'; import { ItemTemplateDirective } from '../common/templates/item-template.directive'; import { GroupTemplateDirective } from '../common/templates/group-template.directive'; import { FixedGroupTemplateDirective } from '../common/templates/fixed-group-template.directive'; import { ValueTemplateDirective } from '../common/templates/value-template.directive'; import { HeaderTemplateDirective } from '../common/templates/header-template.directive'; import { FooterTemplateDirective } from '../common/templates/footer-template.directive'; import { NoDataTemplateDirective } from '../common/templates/no-data-template.directive'; import { Direction } from '../common/models/direction'; import { PreventableEvent } from '../common/models/preventable-event'; import { LocalizationService } from '@progress/kendo-angular-l10n'; import { PopupService, PopupRef } from '@progress/kendo-angular-popup'; import { ItemDisabledFn } from '../common/disabled-items/item-disabled'; import { DisabledItemsService } from '../common/disabled-items/disabled-items.service'; import { DataService } from '../common/data.service'; import { FilterableComponent } from '../common/filtering/filterable-component'; import { ListComponent } from '../common/list.component'; import { VirtualizationSettings } from '../common/models/virtualization-settings'; import { PageChangeEvent } from '../common/models/page-change-event'; import { DropDownSize } from '../common/models/size'; import { DropDownRounded } from '../common/models/rounded'; import { DropDownFillMode } from '../common/models/fillmode'; import { SVGIcon } from '@progress/kendo-svg-icons'; import { ActionSheetComponent } from '@progress/kendo-angular-navigation'; import { TextBoxComponent } from '@progress/kendo-angular-inputs'; import { AdaptiveRendererComponent } from '../common/adaptive-renderer.component'; import * as i0 from "@angular/core"; /** * @hidden */ export declare const DROPDOWNLIST_VALUE_ACCESSOR: any; /** * Represents the Kendo UI for Angular [DropDownList](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist) component. * * @example * ```html * * ``` * @remarks * Supported children components are: {@link CustomMessagesComponent}. */ export declare class DropDownListComponent implements ControlValueAccessor, AfterViewInit, OnDestroy, OnChanges, AfterContentChecked, OnInit, FilterableComponent { wrapper: ElementRef; private localization; private popupService; private selectionService; private navigationService; private disabledItemsService; private dataService; private _zone; private renderer; private cdr; private injector; private adaptiveService; /** * @hidden */ touchEnabled: any; /** * @hidden */ animationDuration: number; /** * @hidden */ xIcon: SVGIcon; /** * @hidden */ searchIcon: SVGIcon; /** * @hidden */ chevronDownSVGIcon: SVGIcon; /** * @hidden */ customIconClass: string; /** * @hidden */ adaptiveRenderer: AdaptiveRendererComponent; /** * @hidden */ searchInput: ElementRef; /** * @hidden */ get actionSheet(): ActionSheetComponent; /** * @hidden */ get actionSheetSearchBar(): TextBoxComponent; get width(): any; get height(): any; get widgetTabIndex(): number; get ariaActivedescendant(): string; get appendTo(): ViewContainerRef; /** * @hidden */ onFilterChange(text: string): void; /** * @hidden */ get ariaLive(): string; /** * Shows or hides the current group sticky header when using grouped data. * The sticky header displays by default. [see example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/autocomplete/grouping#sticky-header) */ showStickyHeader: boolean; /** * @hidden */ icon: string; /** * @hidden */ svgIcon: SVGIcon; /** * Sets and gets the loading state of the `DropDownListComponent`. */ loading: boolean; /** * Sets the data of the `DropDownListComponent`. * * The data must be an array-like list. */ set data(data: any); get data(): any; /** * Sets the value of the `DropDownListComponent`. * The value can be a primitive (string, number) or a complex object. * Use the `valuePrimitive` option to define the type. * * All selected values not present in the source are ignored. */ set value(newValue: any); get value(): any; /** * Sets the data item field that represents the item text. * If the data contains only primitive values, do not define this property. * * The `textField` property can point to a nested property value, for example, `category.name`. */ textField: string; /** * Sets the data item field that represents the item value. * If the data contains only primitive values, do not define this property. * * The `valueField` property can point to a nested property value, for example, `category.id`. */ valueField: string; /** * Enables or disables the adaptive mode. The adaptive rendering is disabled by default. */ adaptiveMode: AdaptiveMode; /** * Sets the title of the ActionSheet rendered instead of the Popup on small screens. * By default, the ActionSheet title uses the label text of the `DropDownListComponent`. */ adaptiveTitle: string; /** * Sets the subtitle of the ActionSheet rendered instead of the Popup on small screens. * By default, the ActionSheet does not render a subtitle. */ adaptiveSubtitle: string; /** * @hidden */ get isAdaptiveModeEnabled(): boolean; /** * @hidden */ windowSize: AdaptiveSize; /** * @hidden */ get isActionSheetExpanded(): boolean; /** * @hidden */ get isAdaptive(): boolean; /** * Configures the popup of the `DropDownListComponent`. * * The available options are: * - `animate: Boolean`—Controls the popup animation. The open and close animations are enabled by default. * - `width: Number | String`—Sets the width of the popup container. By default, the width of the host element is used. If set to `auto`, the component automatically adjusts the width of the popup and no item labels are wrapped. The `auto` mode is not supported when virtual scrolling is enabled. * - `height: Number`—Sets the height of the popup container. * - `popupClass: String`—Specifies a list of CSS classes used to style the popup. * - `appendTo: "root" | "component" | ViewContainerRef`—Specifies the component to which the popup will be appended. */ set popupSettings(settings: PopupSettings); get popupSettings(): PopupSettings; /** * Sets the height of the options list in the popup. * * The `listHeight` property affects only the list of options, not the whole popup container. * To set the height of the popup container, use `popupSettings.height`. * * When using `adaptiveMode` and the screen size is `small` or `medium`, the `listHeight` property is set to null. * * @default 200 */ set listHeight(_listHeight: number); get listHeight(): number; private _listHeight; /** * Sets the text of the default empty item. The value type must match the data type. */ defaultItem: any; /** * Sets the disabled state of the component. To disable the component in reactive forms, see [Forms Support](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/forms#managing-the-dropdownlist-disabled-state-in-reactive-forms). */ disabled: boolean; /** * Defines a Boolean function executed for each data item in the component. Determines whether the item is disabled. [See examples.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/disabled-items) */ set itemDisabled(fn: ItemDisabledFn); /** * Sets the read-only state of the component. * * @default false */ readonly: boolean; /** * Enables the [filtering](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/filtering) functionality of the `DropDownListComponent`. */ filterable: boolean; /** * Enables the [virtualization](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/virtualization) functionality. */ set virtual(settings: boolean | VirtualizationSettings); get virtual(): VirtualizationSettings; /** * Enables a case-insensitive search. Use this option when filtration is disabled. */ ignoreCase: boolean; /** * Sets the delay before an item search is performed. Use this option when filtration is disabled. */ delay: number; /** * Specifies the type of the selected value. If set to `true`, the selected value must be a primitive value. * * [More information and example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/value-binding#primitive-values-from-object-fields) */ set valuePrimitive(isPrimitive: boolean); get valuePrimitive(): boolean; /** * Specifies the [`tabindex`](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/tabindex) of the component. * * @default 0 */ tabindex: number; /** * @hidden */ set tabIndex(tabIndex: number); get tabIndex(): number; /** * Sets the size of the component. The default value is set by the Kendo theme. */ set size(size: DropDownSize); get size(): DropDownSize; /** * Sets the border radius of the component. The default value is set by the Kendo theme. */ set rounded(rounded: DropDownRounded); get rounded(): DropDownRounded; /** * Sets the fillMode of the component. The default value is set by the Kendo theme. */ set fillMode(fillMode: DropDownFillMode); get fillMode(): DropDownFillMode; /** * Toggles the left and right arrow keys navigation functionality. * @hidden */ leftRightArrowsNavigation: boolean; /** * Fires each time the value changes. [See example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/events). */ valueChange: EventEmitter; /** ** Fires each time the user types in the input field. You can filter the source based on the filtration value. When the value is programmatically changed, the `valueChange` event is not triggered. [See example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/events). */ filterChange: EventEmitter; /** * Fires each time the item selection changes. [see example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/events). */ selectionChange: EventEmitter; /** * Fires each time the popup is about to open. This event is preventable. If you cancel it, the popup remains closed. [see example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/open-state#preventing-opening-and-closing) */ open: EventEmitter; /** * Fires after the popup has been opened. */ opened: EventEmitter; /** * Fires each time the popup is about to close. This event is preventable. If you cancel it, the popup remains open. [see example.](https://www.telerik.com/kendo-angular-ui/components/dropdowns/dropdownlist/open-state#preventing-opening-and-closing) */ close: EventEmitter; /** * Fires after the popup has been closed. */ closed: EventEmitter; /** * Fires each time the user focuses the `DropDownListComponent`. */ onFocus: EventEmitter; /** * Fires each time the `DropDownListComponent` gets blurred. */ onBlur: EventEmitter; itemTemplate: ItemTemplateDirective; groupTemplate: GroupTemplateDirective; fixedGroupTemplate: FixedGroupTemplateDirective; valueTemplate: ValueTemplateDirective; headerTemplate: HeaderTemplateDirective; footerTemplate: FooterTemplateDirective; noDataTemplate: NoDataTemplateDirective; container: ViewContainerRef; popupTemplate: TemplateRef; optionsList: ListComponent; /** * @hidden */ blurComponent(event: FocusEvent): void; /** * @hidden */ blurFilterInput(): void; /** * @hidden */ focusComponent(event: FocusEvent): void; /** * @hidden */ onResize(): void; hostClasses: boolean; get isDisabledClass(): boolean | null; get isLoading(): boolean; /** * @hidden */ focusableId: string; get dir(): string; get hostTabIndex(): number; get readonlyClass(): boolean; get readonlyAttr(): string; get isBusy(): boolean; role: string; haspopup: string; get hostAriaInvalid(): boolean | null; /** * @hidden */ keydown(event: KeyboardEvent, input?: HTMLInputElement): void; /** * @hidden */ keypress(event: any): void; /** * @hidden */ click(): void; groupIndices: any[]; optionPrefix: string; valueLabelId: string; filterText: string; listBoxId: string; private subs; private _isFocused; set isFocused(isFocused: boolean); get isFocused(): boolean; direction: Direction; dataItem: any; popupRef: PopupRef; protected onTouchedCallback: Function; protected onChangeCallback: Function; private popupMouseDownHandler; private word; private last; private typingTimeout; private filterFocused; private filterBlurred; private hostElementFocused; private hostElementBlurred; private touchstartDisposeHandler; private _value; private _open; private _previousDataItem; private _valuePrimitive; private text; private _popupSettings; private _virtualSettings; private _size; private _rounded; private _fillMode; constructor(wrapper: ElementRef, localization: LocalizationService, popupService: PopupService, selectionService: SelectionService, navigationService: NavigationService, disabledItemsService: DisabledItemsService, dataService: DataService, _zone: NgZone, renderer: Renderer2, cdr: ChangeDetectorRef, injector: Injector, adaptiveService: AdaptiveService); ngOnInit(): void; ngAfterViewInit(): void; /** * @hidden * Used by the TextBoxContainer to determine if the component is empty. */ isEmpty(): boolean; /** * @hidden */ onFilterFocus(): void; /** * @hidden */ ngOnDestroy(): void; /** * @hidden */ ngOnChanges(changes: SimpleChanges): void; /** * @hidden */ ngAfterContentChecked(): void; /** * @hidden */ get formControl(): FormControl; /** * Focuses a specific item of the `DropDownListComponent` based on the provided index. If there is a default item, it is positioned at index `-1`. If `null` or an invalid index is provided, the focus is removed. */ focusItemAt(index: number): void; /** * Focuses the `DropDownListComponent`. */ focus(): void; /** * Blurs the `DropDownListComponent`. */ blur(): void; /** * Toggles the visibility of the Popup or ActionSheet. If you use the `toggle` method to open or close the Popup, the `open` and `close` events are not fired. * * @param open - The state of the popup. */ toggle(open?: boolean): void; private _toggle; private triggerPopupEvents; /** * @hidden */ togglePopup(open: boolean): void; /** * Returns the current open state. Returns `true` if the popup or actionSheet is open. */ get isOpen(): boolean; /** * Resets the value of the `DropDownListComponent`. If you use the `reset` method to clear the value, the model does not update automatically and the `selectionChange` and `valueChange` events are not fired. */ reset(): void; /** * @hidden */ messageFor(key: string): string; /** * @hidden */ writeValue(value: any): void; /** * @hidden */ registerOnChange(fn: any): void; /** * @hidden */ registerOnTouched(fn: any): void; /** * @hidden */ setDisabledState(isDisabled: boolean): void; /** * @hidden */ get selectButtonClasses(): any; /** * @hidden */ get filterInputClasses(): any; /** * @hidden */ get listContainerClasses(): object; /** * @hidden */ getText(): any; private createPopup; private destroyPopup; private updateState; private clearState; private resetSelection; private onSelectionChange; private subscribeEvents; private setAriaactivedescendant; private subscribeTouchEvents; private subscribeFocusEvents; private unSubscribeFocusEvents; private itemFromEvent; private currentOrDefault; private firstFocusableIndex; private handleEnter; private handleEscape; private clearFilter; protected verifySettings(): void; protected componentBlur(): void; /** * @hidden */ onMouseDown(event: any): void; protected onKeyPress(event: any): void; protected search(): void; protected selectNext(): void; private emitChange; protected navigate(index: number): void; protected findDataItem({ valueField, value }: { valueField: string; value: any; }): { dataItem: any; index: number; }; protected setState(): void; /** * @hidden */ handleFilter(event: any): void; /** * @hidden */ handleClick(): void; /** * @hidden */ pageChange(event: PageChangeEvent): void; private assignAriaDescribedBy; private setComponentClasses; private closeActionSheet; private openActionSheet; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; }