@props([ 'actions' => false, 'actionsPosition' => null, 'columns', 'extraHeadingColumn' => false, 'groupColumn' => null, 'groupsOnly' => false, 'heading', 'placeholderColumns' => true, 'query', 'selectionEnabled' => false, 'selectedState', 'recordCheckboxPosition' => null, ]) @php use Filament\Support\Enums\Alignment; use Filament\Tables\Columns\Column; use Filament\Tables\Enums\ActionsPosition; use Filament\Tables\Enums\RecordCheckboxPosition; if ($groupsOnly && $groupColumn) { $columns = collect($columns) ->reject(fn (Column $column): bool => $column->getName() === $groupColumn) ->all(); } @endphp @if ($placeholderColumns && $actions && in_array($actionsPosition, [ActionsPosition::BeforeCells, ActionsPosition::BeforeColumns])) @endif @if ($placeholderColumns && $selectionEnabled && $recordCheckboxPosition === RecordCheckboxPosition::BeforeCells) @endif @if ($extraHeadingColumn || $groupsOnly) {{ $heading }} @else @php $headingColumnSpan = 1; foreach ($columns as $index => $column) { if ($index === array_key_first($columns)) { continue; } if ($column->hasSummary()) { break; } $headingColumnSpan++; } @endphp @endif @foreach ($columns as $column) @if (($loop->first || $extraHeadingColumn || $groupsOnly || ($loop->iteration > $headingColumnSpan)) && ($placeholderColumns || $column->hasSummary())) @php $alignment = $column->getAlignment() ?? Alignment::Start; if (! $alignment instanceof Alignment) { $alignment = filled($alignment) ? (Alignment::tryFrom($alignment) ?? $alignment) : null; } @endphp 'text-start', Alignment::Center => 'text-center', Alignment::End => 'text-end', Alignment::Left => 'text-left', Alignment::Right => 'text-right', Alignment::Justify, Alignment::Between => 'text-justify', default => $alignment, }, ]) > @if ($loop->first && (! $extraHeadingColumn) && (! $groupsOnly)) {{ $heading }} @elseif ((! $placeholderColumns) || $column->hasSummary()) @foreach ($column->getSummarizers() as $summarizer) {{ $summarizer->query($query)->selectedState($selectedState) }} @endforeach @endif @endif @endforeach @if ($placeholderColumns && $actions && in_array($actionsPosition, [ActionsPosition::AfterColumns, ActionsPosition::AfterCells])) @endif @if ($placeholderColumns && $selectionEnabled && $recordCheckboxPosition === RecordCheckboxPosition::AfterCells) @endif