import { OnInit, OnDestroy, OnChanges, SimpleChanges, EventEmitter, ElementRef } from '@angular/core'; import { ControlValueAccessor, FormControl } from '@angular/forms'; import { Observable } from 'rxjs/Observable'; import { INgxSelectDataprovider, INgxSelectDatasource, INgxSelectComparator, NgxSelectOptionsComponent } from './'; import { NgxSelectService } from './ngx-select.service'; export declare class NgxSelectComponent implements OnInit, OnDestroy, OnChanges, ControlValueAccessor { private elementRef; private ngxSelectService; id: string; data: any[] | Promise | Observable; datasource: INgxSelectDatasource; min_input: number; display_prop: string; value_prop: string; sort_data: boolean; comparator: INgxSelectComparator; filter_data: any; placeholder: string; fetch_on_init: boolean; edit_inline: boolean; parent: NgxSelectComponent; parent_id: string; parent_prop: string; create_enabled: boolean; edit_enabled: boolean; form_control: FormControl; onCreate: EventEmitter; onEdit: EventEmitter; onSelect: EventEmitter; onSetValue: EventEmitter; onFirstValue: EventEmitter; input: ElementRef; display: ElementRef; inputEdit: ElementRef; options: NgxSelectOptionsComponent; search: string; opened: boolean; select_options: any[]; selected_option: any; show_display: boolean; edit_mode: boolean; edit_input: string; initialized_value: boolean; can_execute_create: boolean; filter_deps_ok: boolean; dataprovider: INgxSelectDataprovider; waiting: boolean; valueAccessorChange: (value: any) => void; valueAccessorTouched: () => void; private key_interval_timer; private key_interval; constructor(elementRef: ElementRef, ngxSelectService: NgxSelectService); ngOnInit(): void; ngOnDestroy(): void; ngOnChanges(changes: SimpleChanges): void; /** * Cuando cambia alguno de los valores relacionados reiniciamos la busqueda y deseleccionamos la seleccion actual */ onFiltersChanged(): void; onKeyDown(event: any): any; preventEvent($event: any, prevent_default?: boolean, prevent_bubble?: boolean): void; onKeyUp(event: any): void; /** * Cuando el usuario comienza el tipeo */ onSearch(): void; /** * Cuando el usuario selecciona una opcion * @param {any} selected_option [description] */ onSelectedOption(selected_option: any): void; /** * Cuando el usuario remueve la seleccion */ onRemoveOption(): void; /** * Establece el valor de la opcion seleccionada * @param {[type]} selected_option [description] * @return {[type]} [description] */ setSelectedOption(selected_option: any, is_first_value?: boolean): void; /** * Obtiene la seleccion del usuario * @return {[type]} [description] */ getSelectedOption(): any; /** * Obtiene el valor almacenado por este select * @return {any} [description] */ getValue(): any; /** * Cuando el usuario hace click en el select, sin opcion seleccionada * @param {any} event [description] */ onClickInput(event: any): void; /** * Cuando pierde foco el input * @param {any} event [description] */ onBlurInput(event: any): void; /** * Cuando el usuario hace click en el select, con opcion seleccionada * @return {[type]} [description] */ onClickDisplay(): void; /** * Cambia el estado del display, permitiendo cambiar entre el modo input y el modo display * @param {boolean} state [description] */ toggleDisplay(state?: boolean, first_time?: boolean): void; /** * Cambia el estado que abre o cierra las opciones del select * @param {boolean} display [description] */ toggleOptions(display: boolean): void; /** * Observa los cambios en el padre y hace trigger del filtro */ watchParentChanges(): void; addFilterByParent(): void; /** * Metodo write del value accessor * @param {any} obj [description] */ writeValue(value: any): void; /** * Registramos la funcion change del value accessor * @param {any} fn [description] */ registerOnChange(fn: any): void; /** * Registramos la funcion touched del value accessor * @param {any} fn [description] */ registerOnTouched(fn: any): void; /** * Permite cambiar el estado del select a disabled * @param {boolean} isDisabled [description] */ setDisabledState(isDisabled: boolean): void; /** * Funcion de comparacion por defecto * La comparacion se hace en base a value_prop * Si no está definido, hace una comparacion profunda * @param {string} value_prop [description] * @return {INgxSelectComparator} [description] */ getDefaultComparator(value_prop?: string): INgxSelectComparator; /** * https://github.com/dangvanthanh/deep-compare/blob/master/index.js * @param {Object} o1 [description] * @param {Object} o2 [description] * @return {boolean} [description] */ deepCompare(o1: any, o2: any): boolean; /** * Realiza todas las comprobaciones que permitiran saber si se puede implementar el comportamiento de onCreate * - Debe estar habilitado el metodo crear * - No debe haber una opcion seleccionada * - Se debe haber iniciado la busqueda, siendo el input mayor al minimo * - No se deben haber encontrado resultados * - No se deben estar esperando resultados * - Si hay dependencias de filtro, deben estar todas satisfechas * @return {boolean} [description] */ canExecuteCreate(): boolean; /** * Chequea que si existen dependencias de filtros, los mismos tengan valores asignados * @return {boolean} [description] */ filtersDepsOk(): boolean; /** * El siguiente metodo invoca el evento onCreate definido por el usuario * Espera obtener un resultado a traves de INgxSelectOnCreateParams */ executeOnCreate(): void; /** * Este metodo es invocado cuando resuelve INgxSelectOnCreateParams.done * Nos permite agregar el item al select * @param {any} item [description] */ onCreateSuccess(item: any): void; /** * Activa o desactiva el modo edicion * @param {boolean} edit_mode_active [description] */ toggleEditMode(edit_mode_active: boolean): void; /** * El siguiente metodo invoca el evento OnEdit definido por el usuario * Espera obtener un resultado a traves de INgxSelectOnEditParams */ executeOnEdit(item: any, input: any): void; /** * Este metodo es invocado cuando resuelve INgxSelectOnEditParams.done * Nos permite agregar el item al select * @param {any} item [description] */ onEditSuccess(item: any): void; /** * Hace foco en el input o en el display, segun corresponda * @return {[type]} [description] */ focus(): void; }