UNPKG

angular-paginated-table-fyp

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.1.0.

93 lines (65 loc) 2.81 kB
# AngularPaginatedTableFyp ## by Fede-YaoPai This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.1.0. This library provides a dynamic Angular component rendering a table with pagination and, optionally, a select to choose how many rows per page the table should render. ## Set up In order to use this component, you just have to import the AngularPaginatedTableFypModule into whatever module is declaring the component you want to render the table in: ###### components.module.ts ... imports: [ CommonModule, AngularPaginatedTableFypModule ], ... Now, you should define - in your component's TypeScript file - the three main variables you are going to give to the paginated table component as input: * The data source, meaning the collection from which the table is going to generate its rows. You can either pass an Observable with the Async Pipe, or a simple collection. We are going to do the former in out example; * The columns that should be displayed, as an array of strings; * The properties of the objects from the data source that you want the table to display, also as an array of strings. This is our example: ###### home.component.ts export class HomeComponent implements OnInit { public fighters$: Observable<Fighter[]> = this.apiService.getFighters(); public tableDisplayedColumns: string[] = [ 'Name', 'Lastname', 'Nickname', 'Discipline', 'Wins', 'Losses' ]; public tableDisplayedProps: string[] = [ 'name', 'lastname', 'nickname', 'discipline', 'wins', 'losses' ]; constructor(private apiService: ApiService) { } ngOnInit(): void { } } At this point, you can use the component selector in your component's HTML to actually render the table: ###### home.component.html <paginated-table-fyp [dataSource]="(fighters$ | async)!" [displayedColumns]="tableDisplayedColumns" [displayedProps]="tableDisplayedProps" [rowsPerPage]="4" [showIndex]="true" [fixedLayout]="true" [tableClasses]="['table', 'table-dark', 'table-striped']" [selectRowsPerPage]="true" [rowsPerPageOptions]="[5, 10, 25]" [rowsPerPageOptionsLabel]="'Rows per page'" [maxDisplayedPaginatorItems]="6" [paginatorClasses]="['pagination', 'justify-content-center']" [paginatorItemClasses]="['page-item']" [paginatorLinkClasses]="['page-link']" [rowsPerPageSelectClasses]="['form-select']"> </paginated-table-fyp> As you can see, this component has lots of options you can apply. ## Options Property name | Property type | What it does | --- | --- | --- | //todo | //todo | //todo |