@notiz/ngx-tablo
Version:
JSON powered material table for Angular
79 lines (78 loc) • 5.38 kB
TypeScript
import { DataSource } from '@angular/cdk/collections';
import { AfterViewInit, OnDestroy, OnInit } from '@angular/core';
import { PageEvent } from '@angular/material/paginator';
import { Sort, SortDirection } from '@angular/material/sort';
import { Observable } from 'rxjs';
import { TabloColumns } from './tablo-column';
import * as i0 from "@angular/core";
export declare class Tablo<T> implements OnInit, AfterViewInit, OnDestroy {
tableClasses: import("@angular/core").InputSignal<string>;
/**
* Add custom dataSource.
*
* Default: MatTableDataSource
*/
dataSource: import("@angular/core").InputSignal<DataSource<T>>;
data: import("@angular/core").ModelSignal<T[] | Observable<T[]> | undefined>;
columns: import("@angular/core").InputSignal<TabloColumns<T>>;
protected displayedColumns: import("@angular/core").Signal<string[]>;
mode: import("@angular/core").InputSignal<"client" | "server">;
/**
* Sorting
*/
sortActive: import("@angular/core").ModelSignal<string>;
sortDirection: import("@angular/core").ModelSignal<SortDirection>;
/**
* Custom sorting function for `MatTableDataSource`.
*
* Use this if data properties don't match column names or for complex data objects.
*
* Default expects column `xyz` to represent `data['xyz']`.
*
*/
sortingDataAccessor: import("@angular/core").InputSignal<((data: T, sortHeaderId: string) => string | number) | undefined>;
/**
* Filter value for `MatTableDataSource`.
*/
filter: import("@angular/core").InputSignal<string | undefined>;
/**
* Custom filter function for `MatTableDataSource`.
*/
filterPredicate: import("@angular/core").InputSignal<((data: T, filter: string) => boolean) | undefined>;
/**
* Paging
*/
showPaging: import("@angular/core").ModelSignal<boolean>;
pagingDisabled: import("@angular/core").ModelSignal<boolean>;
hidePageSize: import("@angular/core").ModelSignal<boolean>;
showFirstLastButtons: import("@angular/core").ModelSignal<boolean>;
pageSize: import("@angular/core").ModelSignal<number>;
pageIndex: import("@angular/core").ModelSignal<number>;
length: import("@angular/core").ModelSignal<number>;
pageSizeOptions: import("@angular/core").ModelSignal<number[]>;
pageAriaLabel: import("@angular/core").ModelSignal<string>;
/**
* default to false
*/
resetPageOnSort: import("@angular/core").ModelSignal<boolean>;
/**
* Outputs
*/
rowClick: import("@angular/core").OutputEmitterRef<T>;
pageChange: import("@angular/core").OutputEmitterRef<PageEvent>;
sortChange: import("@angular/core").OutputEmitterRef<Sort>;
private paginator;
private sort;
private destroy$;
constructor();
ngOnInit(): void;
ngAfterViewInit(): void;
ngOnDestroy(): void;
firstPage(): void;
lastPage(): void;
clearFilter(): void;
private fillData;
private getMatTableDataSource;
static ɵfac: i0.ɵɵFactoryDeclaration<Tablo<any>, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<Tablo<any>, "ngx-tablo", never, { "tableClasses": { "alias": "tableClasses"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "sortActive": { "alias": "sortActive"; "required": false; "isSignal": true; }; "sortDirection": { "alias": "sortDirection"; "required": false; "isSignal": true; }; "sortingDataAccessor": { "alias": "sortingDataAccessor"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterPredicate": { "alias": "filterPredicate"; "required": false; "isSignal": true; }; "showPaging": { "alias": "showPaging"; "required": false; "isSignal": true; }; "pagingDisabled": { "alias": "pagingDisabled"; "required": false; "isSignal": true; }; "hidePageSize": { "alias": "hidePageSize"; "required": false; "isSignal": true; }; "showFirstLastButtons": { "alias": "showFirstLastButtons"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "pageIndex": { "alias": "pageIndex"; "required": false; "isSignal": true; }; "length": { "alias": "length"; "required": false; "isSignal": true; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; "isSignal": true; }; "pageAriaLabel": { "alias": "pageAriaLabel"; "required": false; "isSignal": true; }; "resetPageOnSort": { "alias": "resetPageOnSort"; "required": false; "isSignal": true; }; }, { "data": "dataChange"; "sortActive": "sortActiveChange"; "sortDirection": "sortDirectionChange"; "showPaging": "showPagingChange"; "pagingDisabled": "pagingDisabledChange"; "hidePageSize": "hidePageSizeChange"; "showFirstLastButtons": "showFirstLastButtonsChange"; "pageSize": "pageSizeChange"; "pageIndex": "pageIndexChange"; "length": "lengthChange"; "pageSizeOptions": "pageSizeOptionsChange"; "pageAriaLabel": "pageAriaLabelChange"; "resetPageOnSort": "resetPageOnSortChange"; "rowClick": "rowClick"; "pageChange": "pageChange"; "sortChange": "sortChange"; }, never, never, true, never>;
}