@nova-ui/bits
Version:
SolarWinds Nova Framework
32 lines (31 loc) • 1.82 kB
TypeScript
import { CollectionViewer, DataSource } from "@angular/cdk/collections";
import { BehaviorSubject, Observable, Subject } from "rxjs";
import { IDataFieldsConfig, IFilter, IFilteringOutputs, IFilteringParticipants, IFilters } from "./public-api";
import * as i0 from "@angular/core";
export declare abstract class DataSourceService<T, F extends IFilters = IFilters, D = any> extends DataSource<T> {
dataSubject: BehaviorSubject<T[]>;
outputsSubject: Subject<IFilteringOutputs>;
dataFieldsConfig: IDataFieldsConfig;
protected _previousFilters: F;
protected _components: IFilteringParticipants;
constructor();
set componentTree(components: IFilteringParticipants);
registerComponent(components: IFilteringParticipants): void;
deregisterComponent(componentKey: string): void;
abstract getFilteredData(filters: F): Promise<IFilteringOutputs>;
connect(collectionViewer: CollectionViewer): Observable<T[] | ReadonlyArray<T>>;
disconnect(collectionViewer: CollectionViewer): void;
applyFilters(): Promise<void>;
getFilter(componentName: keyof IFilteringParticipants): F | undefined;
getFilters(): F;
get monitoredFilters(): string[];
filterChanged(filterName: keyof IFilteringParticipants, currentFilterValue?: IFilter<any>): boolean;
filtersChanged(filters: F, ...filterNames: (keyof IFilteringParticipants)[]): boolean;
computeFiltersChange(filters: F): boolean;
protected beforeApplyFilters(filters: F): void;
protected afterApplyFilters(filters: F): Promise<void>;
protected shouldResetFilters(filters: F): boolean;
protected resetFilters(filters: F): void;
static ɵfac: i0.ɵɵFactoryDeclaration<DataSourceService<any, any, any>, never>;
static ɵprov: i0.ɵɵInjectableDeclaration<DataSourceService<any, any, any>>;
}