UNPKG

@rxap/data-source

Version:

Provides a set of classes and decorators for creating and managing data sources in Angular applications, including base classes, static data sources, observable data sources, and method data sources. It also includes a component for displaying data source

47 lines (46 loc) 2.49 kB
import { AbstractPaginationDataSource, AbstractPaginationDataSourceMetadata, PaginatorLike } from '@rxap/data-source/pagination'; import { ToggleSubject } from '@rxap/rxjs'; import { Constructor } from '@rxap/utilities'; import { Observable } from 'rxjs'; import * as i0 from "@angular/core"; export type SortDirection = 'asc' | 'desc' | ''; export interface Sort { /** The id of the column being sorted. */ active: string; /** The sort direction. */ direction: SortDirection; } export interface SortLike { disabled?: boolean; sortChange?: Observable<Sort>; /** The id of the most recently sorted MatSortable. */ active: string; /** * The direction to set when an MatSortable is initially sorted. * May be overriden by the MatSortable's sort start. */ start: SortDirection; /** The sort direction of the currently active MatSortable. */ direction: SortDirection; } export interface FilterLike { change: Observable<Record<string, any> | string>; current: Record<string, any> | string; } export type AbstractTableDataSourceMetadata = AbstractPaginationDataSourceMetadata; export declare abstract class AbstractTableDataSource<Data extends Record<string, any> = any, Parameters = any> extends AbstractPaginationDataSource<Data> { readonly loading$: ToggleSubject; sort?: SortLike; filter?: FilterLike; parameters?: Observable<Parameters>; constructor(paginator?: PaginatorLike | null, sort?: SortLike | null, filter?: FilterLike | null, parameters?: Observable<Parameters> | null, metadata?: AbstractTableDataSourceMetadata | null); get sortByColumn(): string | undefined; get sortDirection(): 'asc' | 'desc' | '' | undefined; get totalRowCount(): number; get filterValue(): Record<string, any> | string | undefined; applySortBy(data: ReadonlyArray<Data>, column: string, direction: SortDirection): Data[]; applyFilterBy(data: ReadonlyArray<Data>, filter: Record<string, any> | string): Data[]; static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTableDataSource<any, any>, [{ optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>; static ɵprov: i0.ɵɵInjectableDeclaration<AbstractTableDataSource<any, any>>; } export declare function RxapAbstractTableDataSource(metadataOrId: string | AbstractTableDataSourceMetadata, className?: string, packageName?: string): (target: Constructor<AbstractTableDataSource<any>>) => void;