@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
TypeScript
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;