import { AfterViewInit, DoCheck, ElementRef, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
import { Observable } from 'rxjs';
import { PoMultiselectOption } from './interfaces/po-multiselect-option.interface';
import { PoMultiselectBaseComponent } from './po-multiselect-base.component';
import { PoMultiselectFilterService } from './po-multiselect-filter.service';
import { PoMultiselectOptionTemplateDirective } from './po-multiselect-option-template/po-multiselect-option-template.directive';
import { PoHelperComponent } from '../../po-helper';
/**
* @docsExtends PoMultiselectBaseComponent
*
* @example
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*/
export declare class PoMultiselectComponent extends PoMultiselectBaseComponent implements AfterViewInit, DoCheck, OnDestroy, OnChanges {
private readonly renderer;
private readonly changeDetector;
private readonly el;
private readonly controlPosition;
defaultService: PoMultiselectFilterService;
multiselectOptionTemplate: PoMultiselectOptionTemplateDirective;
dropdownElement: ElementRef;
dropdown: any;
iconElement: ElementRef;
outerContainer: ElementRef;
helperEl?: PoHelperComponent;
literalsTag: any;
dropdownIcon: string;
dropdownOpen: boolean;
initialized: boolean;
hasMoreTag: boolean;
timeoutResize: any;
visibleElement: boolean;
containerWidth: number;
private subscription;
private enterCloseTag;
private initCalculateItems;
private isCalculateVisibleItems;
private cacheOptions;
private focusOnTag;
constructor();
ngAfterViewInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngDoCheck(): void;
ngOnDestroy(): void;
emitAdditionalHelp(): void;
/**
* Função que atribui foco ao componente.
*
* Para utilizá-la é necessário ter a instância do componente no DOM, podendo ser utilizado o ViewChild da seguinte forma:
*
* ```
* import { PoMultiselectComponent } from '@po-ui/ng-components';
*
* ...
*
* @ViewChild(PoMultiselectComponent, { static: true }) multiselect: PoMultiselectComponent;
*
* focusMultiselect() {
* this.multiselect.focus();
* }
* ```
*/
focus(): void;
getAdditionalHelpTooltip(): string;
getInputWidth(): number;
getTagsWidth(): any[];
getErrorPattern(): string;
hasInvalidClass(): any;
calculateVisibleItems(): void;
changeItems(changedItems: any): void;
updateVisibleItems(): void;
debounceResize(): void;
onBlur(event: any): void;
onKeyDown(event?: any): void;
toggleDropdownVisibility(): void;
onKeyDownDropdown(event: KeyboardEvent, index: number): void;
openDropdown(toOpen: any): void;
controlDropdownVisibility(toOpen: boolean): void;
scrollToSelectedOptions(): void;
setVisibleOptionsDropdown(options: any): void;
changeSearch(event: any): void;
focusOnFirstItem(): void;
closeTag(value: any, event: any): void;
/**
* Método que exibe `p-helper` ou executa a ação definida em `p-helper{eventOnClick}` ou em `p-additionalHelp`.
* Para isso, será necessário configurar uma tecla de atalho utilizando o evento `p-keydown`.
*
* > Exibe ou oculta o conteúdo do componente `po-helper` quando o componente estiver com foco.
*
* ```
* // Exemplo com p-label e p-helper
*
* ```
* ```
* ...
* onKeyDown(event: KeyboardEvent, inp: PoMultiselectComponent): void {
* if (event.code === 'F9') {
* inp.showAdditionalHelp();
* }
* }
* ```
*/
showAdditionalHelp(): boolean;
wasClickedOnToggle(event: MouseEvent): void;
applyFilter(value?: string): Observable>;
setHelper(label?: string, additionalHelpTooltip?: string): {
hideAdditionalHelp: boolean;
helperSettings?: any;
};
private applyFilterInFirstClick;
private setOptionsByApplyFilter;
private adjustContainerPosition;
private close;
private focusOnNextTag;
private focusOnRemoveTag;
handleKeyboardNavigationTag(initialIndex?: number): void;
private setTabIndex;
private handleArrowLeft;
private handleArrowRight;
private handleKeyDown;
private initializeTagRemoveElements;
private initializeListeners;
private isAdditionalHelpEventTriggered;
private readonly onScroll;
private open;
private removeListeners;
private setContainerWidth;
private setPositionDropdown;
}