kisame76/filament-tree-table
Expandable parent/child tree rows for Filament v4 and v5 tables. Show top-level parents, expand with a chevron to reveal inline child rows while search and filters stay correct. Includes expand-all/collapse-all actions and optional pagination by root.
^4.3||^5.0, was ^4.0||^5.0). The column-manager tests exercise the toggle column against Table::persistColumnsInSession(), which Filament only added in 4.3.0, so the suite does not run on 4.0 to 4.2 and 4.3 is the oldest version actually tested. Filament 5 is unaffected, and Composer already installs the newest 4.x for anyone upgrading.SECURITY.md with a reporting address and the scope worth reviewing.v* tag publishes the GitHub release, with the notes taken from the matching section of this file. A tag without a section fails instead of publishing an empty release.paginateByRoot() — paginate by root node instead of by row, so a family (a root plus all of its currently visible descendants) is never split across a page boundary. Each page carries N roots (the per-page selection) plus all their visible descendants, so the row count per page varies; "Showing X to Y of Z" and the page count refer to roots. Off by default (paginate_by_root config key) to preserve the existing per-row pagination. No effect while the view is flattened (sort/filter/search), under a non-default pagination mode, or with ->paginated(false).en) and German (de) included. Publish the language files with php artisan vendor:publish --tag="filament-tree-table-translations" to add or override locales.HasExpandableRows contract gained setOrderedKeys() and setPaginateByRoot() (used by the tree internals). Implementations using the InteractsWithExpandableRows trait — the documented setup — get them automatically and need no changes.Full Changelog: https://github.com/Kisame76/filament-tree-table/compare/v1.2.0...v1.3.0
defaultSort() — set the default sibling order by column name or a Closure(Builder $query, string $direction) (e.g. order by a related/computed value).flattenOnFilter() / flattenOnSearch() — choose whether an active filter/search flattens the tree. Both default to true (previous behaviour); set false to keep the hierarchy..ftt-context).->sortable(query: ...) closures and relationship/computed columns are honoured instead of ignored.HasExpandableRows contract gained internal methods; setups using the InteractsWithExpandableRows trait need no changes.toggleableColumns() / reorderableColumns() panel (where it appeared as a nameless, draggable row) and can no longer be reordered or pushed to the back by a persisted column order. It always renders as the first column.Full Changelog: https://github.com/Kisame76/filament-tree-table/compare/v1.0.0...v1.1.0
All notable changes to filament-tree-table will be documented in this file.
Initial release.
level/depth column required — depth is derived from parent_id.How can I help you explore Laravel packages today?