extended-mat-table
v1.0.13
Published
A simple and powerful Datatable for Angular based on Angular Mat Table with some additional features ## Install
Downloads
26
Maintainers
Readme
A simple and powerful Datatable for Angular based on Angular Mat Table with some additional features
Install
Using npm:
$ npm i --save extended-mat-table
How to use
Import ExtendedMatTableModule and BrowserAnimationsModule:
import { ExtendedMatTableModule } from 'extended-mat-table';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
@NgModule({
declarations: [AppComponent],
imports: [BrowserModule,ExtendedMatTableModule,BrowserAnimationsModule],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule { }
Add material theme:
Add your theme file to the styles array of your project's angular.json file
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:browser",
"styles": [
"./node_modules/@angular/material/prebuilt-themes/indigo-pink.css",
"src/styles.scss"
],
"scripts": []
}
<app-extended-mat-table [data]="data" [columns]="column"></app-extended-mat-table>
Demo
https://codesandbox.io/s/unruffled-glitter-z1xve
Available Input
| Variable | Description | |--------------------|---------------| | data | table data | | columns | table columns | | options | see belows | | fetching | see belows |
Available Options
| Variable | Default Value | |--------------------|---------------| | buttonColor | #23758e | | exportPrefix | ex_ | | enableButton | true | | enableFilter | true | | enableColumnFilter | true | | hiddenColumnsIndex | number[] | | allowMultiSelection| false | | enableRowSelection | false | | selectedRowCallback| function | | returnColumnsOrderCallback| function | | fetching_text| fetching data ...| | lineClamp | 4 |
import { Options } from 'extended-mat-table';
public options:Options = {
hiddenColumnsIndex:[5],
selectedRowCallback:({tableId, selected})=>{
},
returnColumnsOrderCallback:({tableId, displayedColumns, availableColumns})=>{
}
}
<app-extended-mat-table [data]="data" [columns]="column" [options]="options"></app-extended-mat-table>
Fetching
the text can be modified by options fetching_text
this one can be used together with addRows function
<app-extended-mat-table [data]="data" [columns]="column" [options]="options" [fetching]="true"></app-extended-mat-table>
Add Rows
You can append data to table after initial
<app-extended-mat-table #dataTable [data]="data" [columns]="column" [options]="options"></app-extended-mat-table>
import { Options, Column, ExtendedMatTable} from 'extended-mat-table';
@ViewChild('dataTable') dataTable:ExtendedMatTable;
this.dataTable.addRows([{}])
Actions
Add button in row
<app-extended-mat-table #dataTable [data]="data" [columns]="column" [actions]="actions"></app-extended-mat-table>
public actions = [
{title:"Edit", action:(row)=>{
console.log(row)
}},
{title:"Delete", action:(row)=>{
console.log(row)
}}
]
Wrap Text
use column wrap_text option to wrap text in a cell, specific number of lines by options lineClamp
public column:Column[] = [
{title:'Code',data:'Code'},
{title:'Description',data:'Description', wrap_text:true}
]
public options:Options = {
lineClamp:4
}