import { CollectionViewer, SelectionModel } from '@angular/cdk/collections'; import { DataSource } from '@angular/cdk/table'; import { MatCheckboxChange } from '@angular/material/checkbox'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { BehaviorSubject, Observable } from 'rxjs'; import { GenericService } from '../http/services/generic.service'; import { Pagination } from './models/pagination'; /** * A generic datasource for data-table */ export declare class TableDataSource> extends DataSource { service: TService; paginator: MatPaginator; sort: MatSort; /** * Represents a value that changes over time. * Observers can subscribe to the subject to receive filter changes */ private _filterChange; /** * onDataLoaded: function($event) * Event emitted after the data is loaded */ _reloadChange: BehaviorSubject; /** * onDataLoaded: function($event) * Event emitted after the data is loaded */ onDataLoaded: BehaviorSubject>; /** * Used to power selecting one or more options from a list. */ selectionModel: SelectionModel; /** * Gets filter */ get filter(): string; /** * Sets filter */ set filter(filter: string); /** * Gets reload token */ get reloadToken(): number; /** * The navigations to includes */ includes: Array; /** * @property projection * @description Defines the fields to be included in the data query projection. * @type {string | string[]} */ projection: string | string[]; /** * The list of items */ items: TEntity[]; /** * Used to add some field filters */ fieldFilters: any; /** * Used to add some field operators */ fieldOperators: any; /** * Used to add some static field filters */ staticFieldFilters: any; /** * The current page index. */ pageIndex: number; /** * The current total number of items being paged */ total: number; /** * The current page size */ pageSize: number; /** * Number of pages */ pageCount: number; /** * A flag to show loading process */ isLoading: boolean; /** * Constructor * @param service * @param paginator * @param sort */ constructor(service: TService, paginator: MatPaginator, sort: MatSort); /** * Connects a collection viewer (such as a data-table) to this data source. * @param _ The component that exposes a view over the data provided by this * data source. * @returns Observable that emits a new value when the data changes. */ connect(_?: CollectionViewer): Observable; /** * Disconnects a collection viewer (such as a data-table) from this data source. Can be used * to perform any clean-up or tear-down operations when a view is being destroyed. * * @param _ The component that exposes a view over the data provided by this * data source. */ disconnect(_?: CollectionViewer): void; /** * Reloads items * @param clearSelection */ reload(clearSelection?: boolean): void; /** * Clears field filters */ clearFilters(newFilters?: any): void; /** * Checks, whether all items are selected */ isAllSelected(): boolean; /** * Toggles selected items * @param checkbox * @param predicate */ toggleSelect(checkbox: MatCheckboxChange, predicate?: (value: TEntity, index: number, array: TEntity[]) => unknown): void; /** * Get selected Items */ getSelected: (key: string) => TType[]; /** * Get selected Items */ getSelectedIds: () => number[]; }