@nova-ui/bits
Version:
SolarWinds Nova Framework
26 lines (25 loc) • 1.4 kB
TypeScript
import { DataSourceService } from "./data-source.service";
import { IFilter, IFilterGroup, IMultiFilterMetadata, INovaFilteringOutputs, INovaFilters } from "./public-api";
import { SearchService } from "../search.service";
import * as i0 from "@angular/core";
/**
* <example-url>./../examples/index.html#/common/data-source-service/client-side</example-url>
*/
export declare class ClientSideDataSource<T, F extends INovaFilters = INovaFilters> extends DataSourceService<T, F> {
protected searchService: SearchService;
protected _allData: T[];
protected _searchProps: string[];
protected virtualScrollData: T[];
constructor(searchService: SearchService);
setData(initialData?: T[]): void;
setSearchProperties(properties: string[]): void;
getFilteredData(filters: F): Promise<INovaFilteringOutputs>;
protected prepareData(filters: F): T[];
protected searchHandler(searchTerm: any): T[];
protected sortingHandler(filters: any, nextChunk: T[]): T[];
protected paginationHandler(filters: any, nextChunk: T[]): T[];
protected virtualScrollHandler(filters: any, nextChunk: T[]): T[];
protected extractMultiFilters(filters: F): IFilterGroup<IFilter<string[], IMultiFilterMetadata>>[];
static ɵfac: i0.ɵɵFactoryDeclaration<ClientSideDataSource<any, any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ClientSideDataSource<any, any>>;
}