UNPKG

@pascalhonegger/ng-datatable

Version:
97 lines (90 loc) 5.53 kB
import * as _angular_core from '@angular/core'; import { Subject } from 'rxjs'; type SortOrder = 'asc' | 'desc'; type SortByFunction<T = any> = (data: T) => any; type SortBy<T = any> = string | SortByFunction<T> | (string | SortByFunction<T>)[]; interface SortEvent { sortBy: SortBy; sortOrder: string; } interface PageEvent { activePage: number; rowsOnPage: number; dataLength: number; } interface DataEvent { length: number; } declare class DataTable<T = any> { /** Array of data to display in table */ readonly inputData: _angular_core.InputSignalWithTransform<readonly T[], readonly T[] | null | undefined>; /** Sort by parameter */ readonly sortBy: _angular_core.ModelSignal<SortBy<T>>; /** Sort order parameter (either `asc` or `desc`, default: `asc`) */ readonly sortOrder: _angular_core.ModelSignal<SortOrder>; /** Number of rows should be displayed on page (default: `1000`) */ readonly rowsOnPage: _angular_core.ModelSignal<number>; /** Page number (default: `1`) */ readonly activePage: _angular_core.ModelSignal<number>; readonly inputDataLength: _angular_core.Signal<number>; readonly data: _angular_core.Signal<readonly T[]>; readonly onSortChange: Subject<SortEvent>; readonly onPageChange: Subject<PageEvent>; constructor(); getSort(): SortEvent; setSort(sortBy: SortBy<T>, sortOrder: SortOrder): void; getPage(): PageEvent; setPage(activePage: number, rowsOnPage: number): void; private calculateNewActivePage; private caseInsensitiveIteratee; private compare; private sorter; static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataTable<any>, never>; static ɵdir: _angular_core.ɵɵDirectiveDeclaration<DataTable<any>, "table[mfData]", ["mfDataTable"], { "inputData": { "alias": "mfData"; "required": true; "isSignal": true; }; "sortBy": { "alias": "mfSortBy"; "required": false; "isSignal": true; }; "sortOrder": { "alias": "mfSortOrder"; "required": false; "isSignal": true; }; "rowsOnPage": { "alias": "mfRowsOnPage"; "required": false; "isSignal": true; }; "activePage": { "alias": "mfActivePage"; "required": false; "isSignal": true; }; }, { "sortBy": "mfSortByChange"; "sortOrder": "mfSortOrderChange"; "rowsOnPage": "mfRowsOnPageChange"; "activePage": "mfActivePageChange"; }, never, never, true, never>; } declare class BootstrapPaginator { /** Specify values for buttons to change number of diplayed rows, e.g. [5, 10, 15] */ rowsOnPageSet: _angular_core.InputSignal<readonly number[]>; /** explicitly specify reference data table, by default the parent `mfData` is injected */ mfTable: _angular_core.InputSignal<DataTable<any> | undefined>; minRowsOnPage: _angular_core.Signal<number>; static ɵfac: _angular_core.ɵɵFactoryDeclaration<BootstrapPaginator, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration<BootstrapPaginator, "mfBootstrapPaginator", never, { "rowsOnPageSet": { "alias": "rowsOnPageSet"; "required": true; "isSignal": true; }; "mfTable": { "alias": "mfTable"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>; } declare class Paginator { private injectMfTable; /** explicitly specify reference data table, by default the parent `mfData` is injected */ readonly inputMfTable: _angular_core.InputSignal<DataTable<any> | undefined>; private readonly mfTable; readonly activePage: _angular_core.WritableSignal<number>; readonly rowsOnPage: _angular_core.WritableSignal<number>; readonly dataLength: _angular_core.WritableSignal<number>; readonly lastPage: _angular_core.Signal<number>; constructor(); setPage(pageNumber: number): void; setRowsOnPage(rowsOnPage: number): void; private onPageChangeSubscriber; static ɵfac: _angular_core.ɵɵFactoryDeclaration<Paginator, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration<Paginator, "mfPaginator", never, { "inputMfTable": { "alias": "mfTable"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>; } declare class DefaultSorter<T = any> { private readonly mfTable; /** Specify how to sort data (argument for lodash function [\_.sortBy ](https://lodash.com/docs#sortBy)) */ readonly sortBy: _angular_core.InputSignal<SortBy<T>>; readonly isSortedByMeAsc: _angular_core.Signal<boolean>; readonly isSortedByMeDesc: _angular_core.Signal<boolean>; sort(): boolean; static ɵfac: _angular_core.ɵɵFactoryDeclaration<DefaultSorter<any>, never>; static ɵcmp: _angular_core.ɵɵComponentDeclaration<DefaultSorter<any>, "mfDefaultSorter", never, { "sortBy": { "alias": "by"; "required": true; "isSignal": true; }; }, {}, never, ["*"], true, never>; } /** * Optional module which exports all components * @deprecated Should be replaced with component imports (DataTable, DefaultSorter, Paginator, BootstrapPaginator) */ declare class DataTableModule { static ɵfac: _angular_core.ɵɵFactoryDeclaration<DataTableModule, never>; static ɵmod: _angular_core.ɵɵNgModuleDeclaration<DataTableModule, never, [typeof DataTable, typeof DefaultSorter, typeof Paginator, typeof BootstrapPaginator], [typeof DataTable, typeof DefaultSorter, typeof Paginator, typeof BootstrapPaginator]>; static ɵinj: _angular_core.ɵɵInjectorDeclaration<DataTableModule>; } export { BootstrapPaginator, DataTable, DataTableModule, DefaultSorter, Paginator }; export type { DataEvent, PageEvent, SortBy, SortByFunction, SortEvent, SortOrder };