@nova-ui/bits
Version:
SolarWinds Nova Framework
24 lines (23 loc) • 1.17 kB
TypeScript
import { OnDestroy } from "@angular/core";
import { BehaviorSubject, Observable, Subject } from "rxjs";
import { DataSourceService } from "./data-source.service";
import { IFilteringOutputs, IFilters } from "./public-api";
import * as i0 from "@angular/core";
/**
* <example-url>./../examples/index.html#/common/server-side-data-source</example-url>
*/
export declare abstract class ServerSideDataSource<T, F extends IFilters = IFilters, D extends IFilters = IFilters> extends DataSourceService<T> implements OnDestroy {
busy: BehaviorSubject<boolean>;
protected applyFilters$: Subject<F>;
protected destroy$: Subject<void>;
constructor();
protected setupFilters(): void;
ngOnDestroy(): void;
protected beforeApplyFilters(filters: F): void;
protected afterApplyFilters(data: D): Promise<void>;
applyFilters(): Promise<void>;
abstract getFilteredData(data: D): Promise<IFilteringOutputs>;
protected abstract getBackendData(filters: F): Observable<D>;
static ɵfac: i0.ɵɵFactoryDeclaration<ServerSideDataSource<any, any, any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<ServerSideDataSource<any, any, any>>;
}