# TABLE-MODULE
Importe o módulo TableModule no módulo que você deseja:

```ts
import { TableModule } from 'ngx-softfocus';
import {SIZE_PAGINATION} from '../../models/pagination/size-paginations-enum';
import {TABLE_BUTTONS} from '../../models/table/button-table-enum';
import {Table} from './table';

@NgModule({
    imports: [
        TableModule,
    ]
})
```

Parâmetros suportados pelo componente.

```ts
    inputData: any[] = [];
    maxHeight = '100%';
    backgroundColorTable = '#FFFFFF';
    paginationSize = SIZE_PAGINATION.SMALL;
    table!: Table;
```
Output events.
```ts
    editSelected: EventEmitter<number[] | string[]> = new EventEmitter<number[] | string[]>();
    deleteSelected: EventEmitter<number[] | string[]> = new EventEmitter<number[] | string[]>();
    editItem: EventEmitter<number[] | string[]> = new EventEmitter<number[] | string[]>();
    deleteItem: EventEmitter<number[] | string[]> = new EventEmitter<number[] | string[]>();
    addItem: EventEmitter<number[] | string[]> = new EventEmitter<number[] | string[]>();
    altPage: EventEmitter<number[] | string[]> = new EventEmitter<number[] | string[]>();
    itemSelected: EventEmitter<any> = new EventEmitter();
```

Exemplo de chamada do componente.

```html
    <soft-table [table]="this.columnsConfig" [inputData]="this.data" [maxHeight]="'600px'"
                (altPage)="altPage($event)"
                (deleteItem)="deleteItem($event)"
                (editItem)="editItem($event)"
                (editSelected)="editSelected($event)"
                (deleteSelected)="deleteSelected($event)"
                (itemSelected)="selectItem($event)">
    </soft-table>
```
Exemplo Table. 
- `field`: nome do atributo. 
- `header`: nome que irá aparecer no cabeçalho.
- `icon`: ícone para a coluna.
- `totalItems`: quantidade total de itens retornadas na paginação.
- `isSelectAndCheckedDefault`: para que o mapItems() pegue o valor default do id do objeto que esteja sendo enviado para esta table.
```ts
columnsConfig: Table = {
    columns: [
        {field: 'matricula', header: 'Matrícula'},
        {field: 'nomeDescricao', header: 'Nome/Descrição'},
        {field: 'dataCriacao', header: 'Data da criação', icon: 'business-calendar-outline'},
        {field: 'area', header: 'Área', icon: 'user-interface-edit-outline'},
    ],
    deleteButton: true,
    editButton: true,
    customButton: true,
    customButtonIcon: 'location-map-outline',
    totalItems: number,
    addButton: true,
    columnRefId: 'matricula',
    showPagination: true,
    showMenuButton: true,
    isSelectAndCheckedDefault: false,
};
```
Exemplo de inputData. 
```ts
data: any[] = [
    {
        matricula: '5666668521745-8',
        nomeDescricao: 'Exemplo de texto Lorem ipsum mollis aenean fringilla ornare lacinia vivamus nec, porta quisque taciti vulputate varius sollicitudin quisque, libero dictum nunc malesuada lacinia suspendisse lacinia. morbi egestas leo himenaeos id curae nunc amet fermentum bibendum, semper feugiat dui vivamus iaculis nunc congue curae tortor, pulvinar tempus ut rutrum quam conubia commodo enim. ',
        dataCriacao: '16/05/2022',
        area: '55 ha',
        coluna6: 'Exemplo de texto',
        coluna3: 'Exemplo de texto',
        coluna4: 'Exemplo de texto Lorem ipsum mollis aenean fringilla ornare lacinia vivamus nec, porta quisque taciti vulputate varius sollicitudin quisque, libero dictum nunc malesuada lacinia suspendisse lacinia. morbi egestas leo himenaeos id curae nunc amet fermentum bibendum, semper feugiat dui vivamus iaculis nunc congue curae tortor, pulvinar tempus ut rutrum quam conubia commodo enim. ',
        coluna5: 'Exemplo de texto',
        1: 'Exemplo de texto'
    },
    {
        matricula: '5666668521745-9',
        nomeDescricao: 'Exemplo de texto Lorem ipsum mollis aenean fringilla ornare lacinia vivamus nec, porta quisque taciti vulputate varius sollicitudin quisque, libero dictum nunc malesuada lacinia suspendisse lacinia. morbi egestas leo himenaeos id curae nunc amet fermentum bibendum, semper feugiat dui vivamus iaculis nunc congue curae tortor, pulvinar tempus ut rutrum quam conubia commodo enim. ',
        dataCriacao: '16/05/2022',
        area: '55 ha',
        coluna6: 'Exemplo de texto',
        coluna3: 'Exemplo de texto',
        coluna4: 'Exemplo de texto',
        coluna5: 'Exemplo de texto',
        1: 'Exemplo de texto'
    },
    {
        matricula: '5666668521745-7',
        nomeDescricao: 'Exemplo de texto',
        dataCriacao: '16/05/2022',
        area: '55 ha',
        coluna6: 'Exemplo de texto',
        coluna3: 'Exemplo de texto',
        coluna4: 'Exemplo de texto',
        coluna5: 'Exemplo de texto',
        1: 'Exemplo de texto'
    }];
```
Exemplo tratamento Output.
```ts
    altPage(event: any): void {
    // passar pagina event para a table;
    }
    editItem(event: any): void {
    // Editar obj.id;
    }
    deleteItem(event: any): void {
    // Deletar obj.id;
    }
    editSelected(event: any): void {
    // Editar List obj;
    }
    deleteSelected(event: any): void {
    // Deletar List obj;
    }
    addItem(event: any): void {
    // Solicitado inclusão de obj;
    }
```
