# Tabulator

An IO module for displaying table data with Tabulator JS

### Row / Cell formatting

The `TabulatorColumnDto` should contain a `RowFormatter`:

```
ColumnDto::SimpleField('foo')
  ->withRowFormatter(ContentRowFormatter::class) 
```

Row formatters must implement `apexl\Io\modules\tabulator\Interfaces\TabulatorRowFormatterInterface`, and optionally can
extend `apexl\Io\modules\tabulator\Tabulatable\RowFormatter\RowFormatter`.

Row formatters must have a corresponding function on the frontend, referenced in
`icarus/src/enums/TabulatorRowFormatter.js`. This function evaluates the cell, and applies classes and / or styles to
the cell, or the whole row. Parameters are passed to this function via DTOs, which must extend
`apexl\Io\modules\tabulator\Dto\RowFormatterDto\TabulatorRowFormatterDto`.