import { NgxSelectArrayDataprovider, INgxSelectDataprovider, INgxSelectDataproviderOptions, INgxSelectComparator, INgxSelectDatasource } from '../'; import { Observable } from 'rxjs/Observable'; export declare class NgxSelectServiceDataprovider implements INgxSelectDataprovider { protected datasource: INgxSelectDatasource; protected options: INgxSelectDataproviderOptions; type: string; key_separator: string; protected data_cache: { [key: string]: NgxSelectArrayDataprovider; }; constructor(datasource: INgxSelectDatasource, options: INgxSelectDataproviderOptions); /** * La responsabilidad de getData en este dataprovider es instanciar un NgxSelectArrayDataprovider que acote la busqueda * El valor de entrada de NgxSelectArrayDataprovider se obtiene invocando a fetchData en el datasource recibido * Se mantiene una cache interna de resultados que luego se filtraran utilizando NgxSelectArrayDataprovider para agilizar la busqueda y no tener que ir siempre contra el servicio * La clave de la cache se arma en base al input de busqueda, el minimo de input, y los datos extra de filtrado * @param {string} search [description] * @param {any} filterData [description] * @return {Observable} [description] */ getData(search: string, filterData?: any): Observable; /** * Permite encontrar y devolver un item * La busqueda se hace mediante el datasource * @param {any} value [description] * @param {INgxSelectComparator} comparator [description] * @return {Observable} [description] */ findItem(value: any, comparator: INgxSelectComparator): Observable; /** * Al agregarse un item invalidamos las cache relacionadas (si se usa mininput) * Sino directamente agregamos el item ya que es como si se tratara de un array * @param {any} item [description] */ addItem(item: any): void; /** * Metodo que se llama cuando se edita un elemento * @param {any} item [description] */ editItem(item: any): void; /** * Genera la key de la cache interna de resultados * @param {string} search [description] * @param {any} filterData [description] * @return {string} [description] */ protected getCacheKey(search: string, filterData?: any): string; }