HEX
Server: Apache
System: Linux server2.voipitup.com.au 4.18.0-553.109.1.lve.el8.x86_64 #1 SMP Thu Mar 5 20:23:46 UTC 2026 x86_64
User: posscale (1027)
PHP: 8.2.30
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/posscale/public_html/printmanager/vendor/filament/tables/src/Concerns/CanGroupRecords.php
<?php

namespace Filament\Tables\Concerns;

use Filament\Tables\Grouping\Group;
use Illuminate\Database\Eloquent\Builder;

trait CanGroupRecords
{
    public ?string $tableGrouping = null;

    public ?string $tableGroupingDirection = null;

    public function getTableGrouping(): ?Group
    {
        if ($this->isTableReordering()) {
            return null;
        }

        if (
            filled($this->tableGrouping) &&
            ($group = $this->getTable()->getGroup($this->tableGrouping))
        ) {
            return $group;
        }

        if ($this->getTable()->isDefaultGroupSelectable()) {
            return null;
        }

        return $this->getTable()->getDefaultGroup();
    }

    public function updatedTableGroupColumn(): void
    {
        $this->resetPage();
    }

    public function getTableGroupingDirection(): ?string
    {
        return match ($this->tableGroupingDirection) {
            'asc' => 'asc',
            'desc' => 'desc',
            default => null,
        };
    }

    protected function applyGroupingToTableQuery(Builder $query): Builder
    {
        $group = $this->getTableGrouping();

        if (! $group) {
            return $query;
        }

        $group->applyEagerLoading($query);

        $group->orderQuery($query, $this->getTableGroupingDirection() ?? 'asc');

        return $query;
    }
}