import { Observable } from "rxjs"; import { HttpService, ViewRetorno } from "../../../services/web/http.service"; import { HttpServiceAtivo } from "../../../services/web/http.ativo.service"; import { ViewFiltros } from "../../../classes/filters/view-filtros"; import { Comparison } from "../../../classes/comparison/comparison"; import { InputSelectComponent } from "./input-select.component"; import { Placement } from "@floating-ui/dom"; export type DefaultModelOptions = { value: string; label: string; }; export declare enum SelectInterfaces { /** Interface padrão do select * Popover quando web, Modal quando mobile */ Dynamic = 0, Popover = 0, Modal = 1, ActionSheet = 2 } export declare class InputSelectConfiguration { /** Valor que será setado no formControl */ bindValue: string | ((obj: any) => any); /** Valor que será exibido */ bindLabel: string | ((obj: any) => string); /** Indica se o select pode ser nulo e limpavel */ clearable: boolean; /** Indica se o select pode ser pesquisado */ searcheable: boolean; /** * Se LoadFrom instanceof HttpService -> Os dados serão carregados do List() * Se LoadFrom instanceof Observable -> Os dados serão carregados da função indicada * Se LoadFrom instanceof Array -> Os dados serão o array */ loadFrom?: HttpService | Observable | any[]; /** Se = true Os valores no form control seráo um array dos items selecionados */ multiple: boolean; /** Desativa os items que estão de acordo com a função */ disableConditional: ((obj: any) => boolean) | null; /** Habilita o filtro de somente ativos */ hasAtivo: boolean; static Create(options: { bindLabel: string | ((obj: any) => string); bindValue: string | ((obj: any) => any); clearable?: boolean; searcheable?: boolean; loadFrom?: HttpService | Observable | any[]; multiple?: boolean; vFiltros?: Partial<{ search: string; orderByProperty: string; ascending: boolean; filter: Comparison[]; }>; disableConditional?: ((obj: any) => boolean); useInfiniteScroll?: boolean | undefined; placeholder?: string; noItensFoundText?: string; interface?: SelectInterfaces; hasAtivo?: boolean; }): InputSelectConfiguration; placeholder: string; noItensFoundText: string; loader: InputSelectDataLoader; loadFromArray: any[]; loadFromService: HttpService | HttpServiceAtivo; loadFromFunction: Observable; popoverConfiguration: { flip: boolean; placement: Placement; }; vFiltros: ViewFiltros | null; useInfiniteScroll?: boolean | undefined; /** Interface do select */ interface: SelectInterfaces; constructor( /** Valor que será setado no formControl */ bindValue?: string | ((obj: any) => any), /** Valor que será exibido */ bindLabel?: string | ((obj: any) => string), /** Indica se o select pode ser nulo e limpavel */ clearable?: boolean, /** Indica se o select pode ser pesquisado */ searcheable?: boolean, /** * Se LoadFrom instanceof HttpService -> Os dados serão carregados do List() * Se LoadFrom instanceof Observable -> Os dados serão carregados da função indicada * Se LoadFrom instanceof Array -> Os dados serão o array */ loadFrom?: HttpService | Observable | any[], /** Se = true Os valores no form control seráo um array dos items selecionados */ multiple?: boolean, /** Aplica os filtros na pesquisa */ vFiltros?: Partial<{ /** Aplica uma pesquisa em texto */ search: string; /** Propriedade de ordenação */ orderByProperty: string; /** Orientação de ordenação */ ascending: boolean; /** Filtro */ filter: Comparison[]; }> | null, /** Desativa os items que estão de acordo com a função */ disableConditional?: ((obj: any) => boolean) | null, /** Habilita o filtro de somente ativos */ hasAtivo?: boolean); } export declare class InputSelectDataLoader { private lstComponents; private configuration; /** Valor que será setado no formControl */ bindValue: ((obj: any) => any) | null; /** Valor que será exibido */ bindLabel: ((obj: any) => string) | null; constructor(configuration: InputSelectConfiguration); AddComponent(component: InputSelectComponent): void; GetLabel(value: any): string; isLoaded: boolean; error: boolean; Refresh(items?: any[]): Promise; CheckForInfiniteScroll(): void; items: any[]; Load(): Promise; } export declare function BindValueFactory(configuration: InputSelectConfiguration): ((obj: any) => any); export declare function BindLabelFactory(configuration: InputSelectConfiguration): ((obj: any) => string);