ngx-sp-infra
Version:
Biblioteca de utilitários da Infra.
82 lines (81 loc) • 4.25 kB
TypeScript
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<T = RecordCombobox> 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<any>;
leftButtonTemplate?: TemplateRef<any>;
rightButtonTemplate?: TemplateRef<any>;
toggleButton?: ElementRef<HTMLButtonElement>;
selectionChange: EventEmitter<any>;
filterChange: EventEmitter<any>;
filterButtonClick: EventEmitter<string | null>;
selectedValues: T[] | null;
get value(): T | T[] | null;
set value(val: T | T[] | null);
invalid: boolean;
isOpen: boolean;
searchControl: FormControl<string | null>;
filteredItems$: Observable<T[]>;
compare: (a: T, b: T) => boolean;
displayWith: (item: T) => string;
displayValue(): string;
trackByFn: TrackByFunction<T | any>;
constructor(_cdr: ChangeDetectorRef, _elementRef: ElementRef);
ngOnInit(): void;
ngAfterViewInit(): void;
ngAfterContentInit(): void;
ngOnChanges(changes: SimpleChanges): void;
ngOnDestroy(): void;
onResize(): void;
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<LibComboboxReworkComponent<any>, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<LibComboboxReworkComponent<any>, "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>;
}