# `FrappeUIPhx.Components.ListView`
[🔗](https://github.com/moacirbishopcamata/frappe_ui_phx/blob/v0.3.1/lib/frappe_ui_phx/components/list_view.ex#L1)

Lista agrupada e recolhível: `group_by` (função linha → rótulo) forma os
grupos; os recolhidos (`collapsed`) são um assign do servidor e o cabeçalho de
cada grupo dispara `on_toggle` com `%{"group" => rótulo}`. Colunas por slot,
como em `list`. Experimental.

# `groups`

```elixir
@spec groups([term()], (term() -&gt; String.t()) | nil) :: [{String.t() | nil, [term()]}]
```

Agrupa as linhas preservando a ordem do primeiro aparecimento: `[{rótulo | nil, [linha]}]`.

# `list_view`

## Attributes

* `id` (`:string`) (required)
* `rows` (`:list`) (required)
* `group_by` (`:any`) - função linha -> rótulo do grupo (nil = sem grupos). Defaults to `nil`.
* `collapsed` (`:list`) - rótulos dos grupos recolhidos. Defaults to `[]`.
* `on_toggle` (`:string`) - Defaults to `nil`.
* `row_id` (`:any`) - Defaults to `&FrappeUIPhx.Components.Sortable.default_id/1`.
* `empty_text` (`:string`) - Defaults to `nil`.
* `class` (`:any`) - Defaults to `nil`.
* Global attributes are accepted.
## Slots

* `col` (required) - Accepts attributes:

  * `label` (`:string`) (required)
  * `class` (`:string`)

---

*Consult [api-reference.md](api-reference.md) for complete listing*
