import * as i0 from '@angular/core'; import { AfterViewInit, OnDestroy, EventEmitter, TemplateRef, QueryList, ElementRef, Renderer2, ChangeDetectorRef } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import * as i4 from '@kirbydesign/designsystem/popover'; import { HorizontalDirection, PopoverComponent } from '@kirbydesign/designsystem/popover'; import { ResizeObserverService } from '@kirbydesign/designsystem/shared'; import * as i1 from '@kirbydesign/designsystem/card'; import * as i2 from '@kirbydesign/designsystem/icon'; import * as i3 from '@kirbydesign/designsystem/item'; import * as i5 from '@kirbydesign/designsystem/button'; import * as i6 from '@angular/common'; import * as i7 from '@kirbydesign/designsystem/list'; declare class KeyboardHandlerService { handle(event: KeyboardEvent, selectedIndex: number, maxIndex: number, cyclicIndex?: boolean): number; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵprov: i0.ɵɵInjectableDeclaration; } declare class DropdownComponent implements AfterViewInit, OnDestroy, ControlValueAccessor { private renderer; private elementRef; private cdr; private keyboardHandlerService; private resizeObserverService; static readonly OPEN_DELAY_IN_MS = 100; private state; private _popout; private _attributesToForward; _listboxId: string; _comboboxId: string; private _items; get items(): string[] | any[]; set items(value: string[] | any[]); private _selectedIndex; get selectedIndex(): number; set selectedIndex(value: number); private _focusedIndex; get focusedIndex(): number; set focusedIndex(value: number); itemTextProperty: string; placeholder: string; set popout(direction: HorizontalDirection | `${HorizontalDirection}`); get popout(): HorizontalDirection | `${HorizontalDirection}`; attentionLevel: '1' | '2' | '3'; expand?: 'block'; disabled: boolean; get _isDisabled(): string; hasErrorChange: EventEmitter; private _hasError; get hasError(): boolean; set hasError(value: boolean); size: 'sm' | 'md'; tabindex: number; /** * @deprecated This input is no longer needed. The dropdown now always uses popover positioning. * This input will be removed in a future major version. */ set usePopover(_value: boolean); get _tabindex(): number; get _noBlurOnScroll(): boolean; /** * Emitted when an item is selected (tap on mobile, click/keypress on web) */ change: EventEmitter; private _value; get value(): string | any; get selectedText(): string; get _isBlockLevel(): boolean; get _isOpening(): boolean; get isOpen(): boolean; clicked: boolean; itemTemplate: TemplateRef; slottedItems: QueryList>; cardElement: ElementRef; popover: PopoverComponent; buttonElement: ElementRef; private forwardAriaLabelToDropdownButton; kirbyItemsDefault: QueryList>; _kirbyItemsSlotted: QueryList>; set kirbyItemsSlotted(kirbyItems: QueryList>); get kirbyItemsSlotted(): QueryList>; private disposeItemClickListeners; private searchBuffer; private searchBufferTimeout; private SEARCH_BUFFER_DELAY; constructor(renderer: Renderer2, elementRef: ElementRef, cdr: ChangeDetectorRef, keyboardHandlerService: KeyboardHandlerService, resizeObserverService: ResizeObserverService); onToggle(event: MouseEvent): void; toggle(): void; private setPopoverCardStyle; ngAfterViewInit(): void; open(): void; private showDropdown; close(): void; onItemSelect(index: number): void; private _onChange; private _onTouched; /** * Sets the select's value. Part of the ControlValueAccessor interface * required to integrate with Angular's core forms API. * * @param value New value to be written to the model. */ writeValue(value: any): void; /** * Saves a callback function to be invoked when the select's value * changes from user input. Part of the ControlValueAccessor interface * required to integrate with Angular's core forms API. * * @param fn Callback to be triggered when the value changes. */ registerOnChange(fn: any): void; /** * Saves a callback function to be invoked when the select is blurred * by the user. Part of the ControlValueAccessor interface required * to integrate with Angular's core forms API. * * @param fn Callback to be triggered when the component has been touched. */ registerOnTouched(fn: any): void; /** * Disables the select. Part of the ControlValueAccessor interface required * to integrate with Angular's core forms API. * * @param isDisabled Sets whether the component is disabled. */ setDisabledState?(isDisabled: boolean): void; private selectItem; private _selectItemByValue; getTextFromItem(item: string | any): any; scrollItemIntoView(index: number): void; _onTab(): void; private preventDefaultAndStopImmediatePropagation; private addToSearchBuffer; private resetSearchBuffer; _onKeydown(event: KeyboardEvent): void; private handlePrintableCharacterKey; private getIndexOfItemByFirstCharacter; _onMouseDown(event: MouseEvent): void; _onTouchStart(event: TouchEvent): void; _onPopoverWillHide(): void; _onFocusOut(event: FocusEvent): void; _onEnterOrEscape(): void; _onPopoverClick(): void; _onEnterOrSpace(event: KeyboardEvent): void; _onArrowKeys(event: KeyboardEvent): boolean; _onHomeEndKeys(event: KeyboardEvent): boolean; private unlistenAllSlottedItems; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration; static ɵcmp: i0.ɵɵComponentDeclaration; } declare class DropdownModule { static ɵfac: i0.ɵɵFactoryDeclaration; static ɵmod: i0.ɵɵNgModuleDeclaration; static ɵinj: i0.ɵɵInjectorDeclaration; } declare enum OpenState { closed = 0, opening = 1, open = 2 } export { DropdownComponent, DropdownModule, KeyboardHandlerService, OpenState }; //# sourceMappingURL=kirbydesign-designsystem-dropdown.d.ts.map