# Tru UI SDK

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

## Interfaces

### ITable

| key                     | type                    | required |
| ----------------------- | ----------------------- | -------- |
| `data`                  | `T[]`                   | Yes      |
| `columns`               | `ITableColumn[]`        | Yes      |
| `name`                  | `string`                | Yes      |
| `sortOptions`           | `ISort`                 | Yes      |
| `tableData`             | `MatTableDataSource<T>` | Yes      |
| `paginator`             | `IPaginator`            | Yes      |
| `isLoading`             | `boolean`               | No       |
| `showDeleteElementIcon` | `boolean`               | No       |
| `hideHeader`            | `boolean`               | No       |
| `canOpenOnClick`        | `boolean`               | No       |
| `canExpandOnClick`      | `boolean`               | No       |
| `canMoveColumns`        | `boolean`               | No       |
| `showEditElementIcon`   | `boolean`               | No       |
| `expandedElement`       | `T - null`              | No       |
| `setPairRows`           | `boolean`               | No       |
| `customCellComponents`  | `any`                   | No       |
| `customEditSvgIcon`     | `string`                | No       |
| `customDeleteSvgIcon`   | `string`                | No       |
| `expanderComponent`     | `Type<any>`             | No       |
| `showExpandElementIcon` | `boolean`               | No       |

### ITableColumn

| key                     | type               | required |
| ----------------------- | ------------------ | -------- |
| `value`                 | `string`           | Yes      |
| `type`                  | `TableTypeColumns` | Yes      |
| `headerName`            | `string`           | No       |
| `tooltip`               | `string`           | No       |
| `translationLabel`      | `string`           | No       |
| `footer`                | `TableTypeColumns` | No       |
| `hideHeader`            | `boolean`          | No       |
| `valueAux`              | `string`           | No       |
| `dateFormat`            | `string`           | No       |
| `customClass`           | `string`           | No       |
| `customStyles`          | `any`              | No       |
| `hideColumn`            | `boolean`          | No       |
| `disableSorting`        | `boolean`          | No       |
| `stickyOnEnd`           | `boolean`          | No       |
| `stickyOnStart`         | `boolean`          | No       |
| `showNA`                | `boolean`          | No       |
| `customComponentName`   | `string`           | No       |
| `customComponent`       | `Type<any>`        | No       |
| `customHeaderComponent` | `Type<any>`        | No       |
| `sortValue`             | `string`           | No       |

### ICustomTableCellEvent<T>

| key         | type     | required |
| ----------- | -------- | -------- |
| `component` | `string` | Yes      |
| `action`    | `string` | Yes      |
| `element`   | `T`      | Yes      |

### ISort

| key         | type           | required |
| ----------- | -------------- | -------- |
| `sortKey`   | string         | Yes      |
| `sortOrder` | 'asc' - 'desc' | Yes      |

### IPaginator

| key       | type   | required |
| --------- | ------ | -------- |
| `count`   | Number | Yes      |
| `page`    | Number | Yes      |
| `forPage` | Number | Yes      |

## Table Component

### api

import { TruTableModule } from '@ngx-gilmapi/ui-angular-components/table';

imports: [...TruTableModule]

`<ngx-gmp-table></ngx-gmp-table>`

### inputs and outputs

| Name                                     | Type                       |
| ---------------------------------------- | -------------------------- |
| **@Input() table**                       | `ITable<T>`                |
| **@Output() deleteEvent**                | `EventEmitter<T>`          |
| **@Output() detailsEvent**               | `EventEmitter<T>`          |
| **@Output() editEvent**                  | `EventEmitter<T>`          |
| **@Output() reloadEvent**                | `EventEmitter<ITable<T>>`  |
| **@Output() sortingChangeEvent**         | `EventEmitter<ISort>`      |
| **@Output() expandedElementChangeEvent** | `EventEmitter<T \| null>`  |
| **@Output() paginatorChangeEvent**       | `EventEmitter<IPaginator>` |
| **@Output() photoOpenEvent**             | `EventEmitter<T>`          |
