import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges, TemplateRef, TrackByFunction } from '@angular/core'; import { ControlValueAccessor, FormControl } from '@angular/forms'; import { Observable } from 'rxjs'; import { RecordCombobox } from '../../models/combobox/record-combobox'; import * as i0 from "@angular/core"; export declare class LibComboboxReworkComponent implements ControlValueAccessor, OnInit, AfterViewInit, OnDestroy, OnChanges { private _cdr; private _elementRef; private mutationObserver; /** Valor interno do componente */ private _value; private _list$; private _search$; private _onTouched; private _onChange; private _destroy$; get list(): T[]; set list(value: T[]); placeholder: string; searchPlaceholder: string; noResultsText: string; disabled: boolean; multiple: boolean; innerFilter: boolean; customLabel: string; customValue: string; optionTemplate?: TemplateRef; leftButtonTemplate?: TemplateRef; rightButtonTemplate?: TemplateRef; toggleButton?: ElementRef; selectionChange: EventEmitter; filterChange: EventEmitter; filterButtonClick: EventEmitter; selectedValues: T[] | null; get value(): T | T[] | null; set value(val: T | T[] | null); invalid: boolean; isOpen: boolean; searchControl: FormControl; filteredItems$: Observable; compare: (a: T, b: T) => boolean; displayWith: (item: T) => string; displayValue(): string; trackByFn: TrackByFunction; constructor(_cdr: ChangeDetectorRef, _elementRef: ElementRef); ngOnInit(): void; ngAfterViewInit(): void; ngAfterContentInit(): void; ngOnChanges(changes: SimpleChanges): void; ngOnDestroy(): void; onResize(): void; /** * Compara dois valores por conteúdo, não por referência * Especialmente útil para arrays que retornam novas referências a cada vez */ private isValueEqual; private filterItems; select(item: T, emitEvent?: boolean): void; isSelected(item: T): boolean; /** * "Harmoniza" um valor primitivo de "ID" e encontra o seu item correspondente na lista * @param val Valor a ser resolvido * @returns O valor infromado, o item correspondente encontrado ou null */ private resolveValue; /** Formata o valor de retorno com base na configuração de retorno */ private formatReturn; writeValue(obj: any, emitEvent?: boolean): void; registerOnChange(fn: (value: T | T[] | null) => void): void; registerOnTouched(fn: () => void): void; setDisabledState?(isDisabled: boolean): void; toggleDropdown(): void; closeDropdown(): void; onBlurOutside(event: FocusEvent): void; /** Define a largura máxima em pixels com base na largura do container pai * * Esta abordagem foi necessária pois o elemento em questão constantemente aumentava sua largura para acomodar o seu valor interno, independente das regras CSS impostas. * * A solução mais rápida era definir uma largura em pixels fixa na inicialização, o que não é o ideal por questões de responsividade, portanto este método é chamado em caso de resize da tela também */ private setMaxWidth; private registerObserver; private checkInvalidClass; static ɵfac: i0.ɵɵFactoryDeclaration, never>; static ɵcmp: i0.ɵɵComponentDeclaration, "lib-combobox-rework", never, { "list": { "alias": "list"; "required": true; }; "placeholder": { "alias": "placeholder"; "required": false; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; }; "noResultsText": { "alias": "noResultsText"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "multiple": { "alias": "multiple"; "required": false; }; "innerFilter": { "alias": "innerFilter"; "required": false; }; "customLabel": { "alias": "customLabel"; "required": false; }; "customValue": { "alias": "customValue"; "required": false; }; }, { "selectionChange": "selectionChange"; "filterChange": "filterChange"; "filterButtonClick": "filterButtonClick"; }, ["optionTemplate", "leftButtonTemplate", "rightButtonTemplate"], never, true, never>; }