UNPKG

@vindev/particle

Version:

Angular Component Library using Tailwind

39 lines (38 loc) 1.42 kB
import { BehaviorSubject, Observable, Subscription } from 'rxjs'; import { AtmPaginator } from './paginator'; export declare type ListRange = { start: number; end: number; }; export interface CollectionViewer { viewChange: Observable<ListRange>; } export declare abstract class DataSource<T> { abstract connect(collectionViewer: CollectionViewer): Observable<readonly T[]>; abstract disconnect(collectionViewer: CollectionViewer): void; } export declare function isDataSource(value: any): value is DataSource<any>; export declare class AtmDataSource<T> extends DataSource<T> { private readonly _data; private readonly _filter; private readonly _renderData; private readonly _internalPageChanges; _renderChangesSubscription: Subscription | null; filteredData: T[]; get paginator(): AtmPaginator | null; set paginator(paginator: AtmPaginator | null); private _paginator; get data(): T[]; set data(data: T[]); get filter(): string; set filter(filter: string); filterPredicate: (data: T, filter: string) => boolean; constructor(initialData?: T[]); connect(): BehaviorSubject<T[]>; addToData(newData: T[]): void; disconnect(): void; _updateChangeSubscription(): void; _filterData(data: T[]): T[]; _pageData(data: T[]): T[]; _updatePaginator(filteredDataLength: number): void; }